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

; 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.41" = type { ptr }
%"class.SimTKIpopt::SmartPtr.5" = 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.29" = type { i8 }
%"class.SimTKIpopt::SmartPtr.27" = type { ptr }
%"class.SimTKIpopt::SmartPtr" = type { ptr }
%"class.SimTKIpopt::SmartPtr.21" = type { ptr }
%"class.SimTKIpopt::SmartPtr.25" = type { ptr }
%"class.SimTKIpopt::SmartPtr.64" = type { ptr }
%"class.SimTKIpopt::SmartPtr.23" = type { ptr }
%"class.SimTKIpopt::SmartPtr.24" = type { ptr }
%"class.SimTKIpopt::SmartPtr.86" = type { ptr }
%"class.SimTKIpopt::SmartPtr.26" = type { ptr }
%"class.SimTKIpopt::SmartPtr.22" = type { ptr }
%"class.SimTKIpopt::SmartPtr.87" = type { ptr }
%"class.SimTKIpopt::LimMemQuasiNewtonUpdater" = type { %"class.SimTKIpopt::HessianUpdater.base", %"class.SimTKIpopt::SmartPtr.20", i32, i32, i32, double, i32, double, double, i8, double, %"class.SimTKIpopt::SmartPtr.21", i32, %"class.SimTKIpopt::SmartPtr.21", double, i8, i32, i32, %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.23", %"class.SimTKIpopt::SmartPtr.24", %"class.SimTKIpopt::SmartPtr.25", double, %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.26", i8, %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.26", %"class.SimTKIpopt::SmartPtr.21", %"class.SimTKIpopt::SmartPtr.21", %"class.SimTKIpopt::SmartPtr.27", %"class.SimTKIpopt::SmartPtr.27", i32, %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.23", %"class.SimTKIpopt::SmartPtr.24", %"class.SimTKIpopt::SmartPtr.25", double, %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.26", i8, %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.26" }
%"class.SimTKIpopt::HessianUpdater.base" = type { %"class.SimTKIpopt::AlgorithmStrategyObject.base" }
%"class.SimTKIpopt::AlgorithmStrategyObject.base" = type <{ %"class.SimTKIpopt::ReferencedObject.base", [4 x i8], %"class.SimTKIpopt::SmartPtr.16", %"class.SimTKIpopt::SmartPtr.17", %"class.SimTKIpopt::SmartPtr.18", %"class.SimTKIpopt::SmartPtr.19", i8 }>
%"class.SimTKIpopt::ReferencedObject.base" = type <{ ptr, i32 }>
%"class.SimTKIpopt::SmartPtr.16" = type { ptr }
%"class.SimTKIpopt::SmartPtr.17" = type { ptr }
%"class.SimTKIpopt::SmartPtr.18" = type { ptr }
%"class.SimTKIpopt::SmartPtr.19" = type { ptr }
%"class.SimTKIpopt::SmartPtr.20" = type { ptr }

@_ZTIN10SimTKIpopt14SymMatrixSpaceE = external constant ptr
@_ZTIN10SimTKIpopt22CompoundSymMatrixSpaceE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt11MatrixSpaceE = external constant ptr
@_ZTIN10SimTKIpopt27LowRankUpdateSymMatrixSpaceE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.25 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [111 x i8], align 1
@_ZTIN10SimTKIpopt14OPTION_INVALIDE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt8IpoptNLPE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt13RestoIpoptNLPE = external constant ptr
@.str.29 = external hidden unnamed_addr constant [25 x i8], align 1
@_ZTIN10SimTKIpopt6VectorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundVectorE = external constant ptr
@_ZTIN10SimTKIpopt6MatrixE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundMatrixE = external constant ptr
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [63 x i8], align 1
@_ZTIN10SimTKIpopt14INTERNAL_ABORTE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.45 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [51 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 @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

111:                                              ; preds = %1
  %112 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %113 = load i8, ptr %112, align 8, !tbaa !9, !range !31, !noundef !32
  %114 = trunc i8 %113 to i1
  br i1 %114, label %115, label %155

115:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #11
  %116 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
  %117 = load ptr, ptr %116, align 8, !tbaa !33
  %118 = getelementptr inbounds ptr, ptr %117, i64 20
  %119 = load ptr, ptr %118, align 8
  call void %119(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.41") align 8 %3, ptr noundef nonnull align 8 dereferenceable(24) %116)
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #11
  %120 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_14SymMatrixSpaceEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %121 unwind label %125

121:                                              ; preds = %115
  %122 = icmp eq ptr %120, null
  br i1 %122, label %129, label %123

123:                                              ; preds = %121
  %124 = call ptr @__dynamic_cast(ptr %120, ptr @_ZTIN10SimTKIpopt14SymMatrixSpaceE, ptr @_ZTIN10SimTKIpopt22CompoundSymMatrixSpaceE, i64 0) #11
  br label %130

125:                                              ; preds = %115
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %5, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %6, align 4
  br label %154

129:                                              ; preds = %121
  br label %130

130:                                              ; preds = %129, %123
  %131 = phi ptr [ %124, %123 ], [ null, %129 ]
  store ptr %131, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #11
  %132 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt22CompoundSymMatrixSpace12GetCompSpaceEii(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.5") align 8 %7, ptr noundef nonnull align 8 dereferenceable(97) %132, i32 noundef 0, i32 noundef 0)
          to label %133 unwind label %139

133:                                              ; preds = %130
  %134 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_11MatrixSpaceEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %135 unwind label %143

135:                                              ; preds = %133
  %136 = icmp eq ptr %134, null
  br i1 %136, label %147, label %137

137:                                              ; preds = %135
  %138 = call ptr @__dynamic_cast(ptr %134, ptr @_ZTIN10SimTKIpopt11MatrixSpaceE, ptr @_ZTIN10SimTKIpopt27LowRankUpdateSymMatrixSpaceE, i64 0) #11
  br label %148

139:                                              ; preds = %130
  %140 = landingpad { ptr, i32 }
          cleanup
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %5, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %6, align 4
  br label %153

143:                                              ; preds = %148, %133
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %5, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11MatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #11
  br label %153

147:                                              ; preds = %135
  br label %148

148:                                              ; preds = %147, %137
  %149 = phi ptr [ %138, %137 ], [ null, %147 ]
  %150 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 1
  %151 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef %149)
          to label %152 unwind label %143

152:                                              ; preds = %148
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11MatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14SymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #11
  br label %217

153:                                              ; preds = %143, %139
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #11
  br label %154

154:                                              ; preds = %153, %125
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14SymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #11
  br label %1926

155:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #11
  %156 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
  %157 = load ptr, ptr %156, align 8, !tbaa !33
  %158 = getelementptr inbounds ptr, ptr %157, i64 20
  %159 = load ptr, ptr %158, align 8
  call void %159(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.41") align 8 %8, ptr noundef nonnull align 8 dereferenceable(24) %156)
  %160 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_14SymMatrixSpaceEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %161 unwind label %165

161:                                              ; preds = %155
  %162 = icmp eq ptr %160, null
  br i1 %162, label %169, label %163

163:                                              ; preds = %161
  %164 = call ptr @__dynamic_cast(ptr %160, ptr @_ZTIN10SimTKIpopt14SymMatrixSpaceE, ptr @_ZTIN10SimTKIpopt27LowRankUpdateSymMatrixSpaceE, i64 0) #11
  br label %170

165:                                              ; preds = %174, %170, %155
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %5, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %6, align 4
  br label %216

169:                                              ; preds = %161
  br label %170

170:                                              ; preds = %169, %163
  %171 = phi ptr [ %164, %163 ], [ null, %169 ]
  %172 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 1
  %173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef %171)
          to label %174 unwind label %165

174:                                              ; preds = %170
  %175 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 1
  %176 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_27LowRankUpdateSymMatrixSpaceEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %175)
          to label %177 unwind label %165

177:                                              ; preds = %174
  br i1 %176, label %215, label %178

178:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %179 unwind label %188

179:                                              ; preds = %178
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #11
  %180 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef @.str.26)
          to label %181 unwind label %192

181:                                              ; preds = %179
  %182 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef @.str.27)
          to label %183 unwind label %192

183:                                              ; preds = %181
  store i1 true, ptr %14, align 1
  %184 = call ptr @__cxa_allocate_exception(i64 112) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %185 unwind label %196

185:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %186 unwind label %200

186:                                              ; preds = %185
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %184, ptr noundef %11, ptr noundef %12, i32 noundef 148)
          to label %187 unwind label %204

187:                                              ; preds = %186
  store i1 false, ptr %14, align 1
  invoke void @__cxa_throw(ptr %184, ptr @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #12
          to label %1931 unwind label %204

188:                                              ; preds = %178
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %5, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #11
  br label %214

192:                                              ; preds = %181, %179
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %5, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %6, align 4
  br label %213

196:                                              ; preds = %183
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %5, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %6, align 4
  br label %209

200:                                              ; preds = %185
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %5, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %6, align 4
  br label %208

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

208:                                              ; preds = %204, %200
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  br label %209

209:                                              ; preds = %208, %196
  %210 = load i1, ptr %14, align 1
  br i1 %210, label %211, label %212

211:                                              ; preds = %209
  call void @__cxa_free_exception(ptr %184) #11
  br label %212

212:                                              ; preds = %211, %209
  br label %213

213:                                              ; preds = %212, %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  br label %214

214:                                              ; preds = %213, %188
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #11
  br label %216

215:                                              ; preds = %177
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14SymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #11
  br label %217

216:                                              ; preds = %214, %165
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14SymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #11
  br label %1926

217:                                              ; preds = %215, %152
  br label %218

218:                                              ; preds = %217, %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  %219 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 1
  %220 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %219)
  call void @_ZNK10SimTKIpopt27LowRankUpdateSymMatrixSpace9P_LowRankEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %15, ptr noundef nonnull align 8 dereferenceable(41) %220)
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  %221 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 1
  %222 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %221)
          to label %223 unwind label %234

223:                                              ; preds = %218
  invoke void @_ZNK10SimTKIpopt27LowRankUpdateSymMatrixSpace18LowRankVectorSpaceEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr") align 8 %16, ptr noundef nonnull align 8 dereferenceable(41) %222)
          to label %224 unwind label %234

224:                                              ; preds = %223
  %225 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %226 = load i8, ptr %225, align 8, !tbaa !9, !range !31, !noundef !32
  %227 = trunc i8 %226 to i1
  br i1 %227, label %228, label %334

228:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #11
  %229 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %230 unwind label %238

230:                                              ; preds = %228
  %231 = icmp eq ptr %229, null
  br i1 %231, label %242, label %232

232:                                              ; preds = %230
  %233 = call ptr @__dynamic_cast(ptr %229, ptr @_ZTIN10SimTKIpopt8IpoptNLPE, ptr @_ZTIN10SimTKIpopt13RestoIpoptNLPE, i64 0) #11
  br label %243

234:                                              ; preds = %223, %218
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  store ptr %236, ptr %5, align 8
  %237 = extractvalue { ptr, i32 } %235, 1
  store i32 %237, ptr %6, align 4
  br label %1925

238:                                              ; preds = %329, %319, %317, %315, %312, %258, %254, %252, %249, %228
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %5, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %6, align 4
  br label %333

242:                                              ; preds = %230
  br label %243

243:                                              ; preds = %242, %232
  %244 = phi ptr [ %233, %232 ], [ null, %242 ]
  store ptr %244, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #11
  %245 = load ptr, ptr %17, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt13RestoIpoptNLP4DR_xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %18, ptr noundef nonnull align 8 dereferenceable(312) %245)
          to label %246 unwind label %263

246:                                              ; preds = %243
  %247 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 11
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %249 unwind label %267

249:                                              ; preds = %246
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  %250 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 11
  %251 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %250)
          to label %252 unwind label %238

252:                                              ; preds = %249
  %253 = invoke noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %251)
          to label %254 unwind label %238

254:                                              ; preds = %252
  %255 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 12
  store i32 %253, ptr %255, align 8, !tbaa !35
  %256 = invoke noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6MatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %257 unwind label %238

257:                                              ; preds = %254
  br i1 %256, label %258, label %272

258:                                              ; preds = %257
  %259 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 11
  %260 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 13
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %260, ptr noundef nonnull align 8 dereferenceable(8) %259)
          to label %262 unwind label %238

262:                                              ; preds = %258
  br label %312

263:                                              ; preds = %243
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %5, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %6, align 4
  br label %271

267:                                              ; preds = %246
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %5, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #11
  br label %271

271:                                              ; preds = %267, %263
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  br label %333

272:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #11
  %273 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %274 unwind label %293

274:                                              ; preds = %272
  %275 = load ptr, ptr %273, align 8, !tbaa !33
  %276 = getelementptr inbounds ptr, ptr %275, i64 2
  %277 = load ptr, ptr %276, align 8
  %278 = invoke noundef ptr %277(ptr noundef nonnull align 8 dereferenceable(16) %273)
          to label %279 unwind label %293

279:                                              ; preds = %274
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef %278)
          to label %280 unwind label %293

280:                                              ; preds = %279
  %281 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %282 unwind label %297

282:                                              ; preds = %280
  %283 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 11
  %284 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %283)
          to label %285 unwind label %297

285:                                              ; preds = %282
  %286 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %287 unwind label %297

287:                                              ; preds = %285
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %281, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %284, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %286)
          to label %288 unwind label %297

288:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #11
  invoke void @_ZN10SimTKIpopt8ConstPtrINS_6VectorEEENS_8SmartPtrIKT_EERKNS2_IS3_EE(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %20, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %289 unwind label %301

289:                                              ; preds = %288
  %290 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 13
  %291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %290, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %292 unwind label %305

292:                                              ; preds = %289
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  br label %312

293:                                              ; preds = %279, %274, %272
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %5, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %6, align 4
  br label %311

297:                                              ; preds = %287, %285, %282, %280
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %5, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %6, align 4
  br label %310

301:                                              ; preds = %288
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %5, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %6, align 4
  br label %309

305:                                              ; preds = %289
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %5, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #11
  br label %309

309:                                              ; preds = %305, %301
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  br label %310

310:                                              ; preds = %309, %297
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #11
  br label %311

311:                                              ; preds = %310, %293
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  br label %333

312:                                              ; preds = %292, %262
  %313 = load ptr, ptr %17, align 8, !tbaa !5
  %314 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %315 unwind label %238

315:                                              ; preds = %312
  %316 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData7curr_muEv(ptr noundef nonnull align 8 dereferenceable(864) %314)
          to label %317 unwind label %238

317:                                              ; preds = %315
  %318 = invoke noundef double @_ZNK10SimTKIpopt13RestoIpoptNLP3EtaEd(ptr noundef nonnull align 8 dereferenceable(312) %313, double noundef %316)
          to label %319 unwind label %238

319:                                              ; preds = %317
  %320 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 14
  store double %318, ptr %320, align 8, !tbaa !36
  %321 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 14
  %322 = load double, ptr %321, align 8, !tbaa !36
  %323 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 10
  %324 = load double, ptr %323, align 8, !tbaa !37
  %325 = fcmp une double %322, %324
  %326 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 15
  %327 = zext i1 %325 to i8
  store i8 %327, ptr %326, align 8, !tbaa !38
  %328 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %329 unwind label %238

329:                                              ; preds = %319
  %330 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 14
  %331 = load double, ptr %330, align 8, !tbaa !36
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %328, i32 noundef 5, i32 noundef 9, ptr noundef @.str.29, double noundef %331)
          to label %332 unwind label %238

332:                                              ; preds = %329
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  br label %334

333:                                              ; preds = %311, %271, %238
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  br label %1924

334:                                              ; preds = %332, %224
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %335 unwind label %354

335:                                              ; preds = %334
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %336 unwind label %358

336:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %337 unwind label %362

337:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %338 unwind label %366

338:                                              ; preds = %337
  %339 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %340 = load i8, ptr %339, align 8, !tbaa !9, !range !31, !noundef !32
  %341 = trunc i8 %340 to i1
  br i1 %341, label %342, label %468

342:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #11
  %343 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %344 unwind label %370

344:                                              ; preds = %342
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %27, ptr noundef nonnull align 8 dereferenceable(864) %343)
          to label %345 unwind label %370

345:                                              ; preds = %344
  %346 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %347 unwind label %374

347:                                              ; preds = %345
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %26, ptr noundef nonnull align 8 dereferenceable(280) %346)
          to label %348 unwind label %374

348:                                              ; preds = %347
  %349 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6VectorEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %350 unwind label %378

350:                                              ; preds = %348
  %351 = icmp eq ptr %349, null
  br i1 %351, label %382, label %352

352:                                              ; preds = %350
  %353 = call ptr @__dynamic_cast(ptr %349, ptr @_ZTIN10SimTKIpopt6VectorE, ptr @_ZTIN10SimTKIpopt14CompoundVectorE, i64 0) #11
  br label %383

354:                                              ; preds = %334
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %5, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %6, align 4
  br label %1923

358:                                              ; preds = %335
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %5, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %6, align 4
  br label %1922

362:                                              ; preds = %336
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %5, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %6, align 4
  br label %1921

366:                                              ; preds = %337
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %5, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %6, align 4
  br label %1920

370:                                              ; preds = %344, %342
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %5, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %6, align 4
  br label %398

374:                                              ; preds = %347, %345
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %5, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %6, align 4
  br label %397

378:                                              ; preds = %348
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %5, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #11
  br label %397

382:                                              ; preds = %350
  br label %383

383:                                              ; preds = %382, %352
  %384 = phi ptr [ %353, %352 ], [ null, %382 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #11
  store ptr %384, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #11
  %385 = load ptr, ptr %25, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %28, ptr noundef nonnull align 8 dereferenceable(265) %385, i32 noundef 0)
          to label %386 unwind label %399

386:                                              ; preds = %383
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %388 unwind label %403

388:                                              ; preds = %386
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #11
  %389 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %390 unwind label %408

390:                                              ; preds = %388
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities10curr_jac_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %30, ptr noundef nonnull align 8 dereferenceable(2025) %389)
          to label %391 unwind label %408

391:                                              ; preds = %390
  %392 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6MatrixEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %393 unwind label %412

393:                                              ; preds = %391
  %394 = icmp eq ptr %392, null
  br i1 %394, label %416, label %395

395:                                              ; preds = %393
  %396 = call ptr @__dynamic_cast(ptr %392, ptr @_ZTIN10SimTKIpopt6MatrixE, ptr @_ZTIN10SimTKIpopt14CompoundMatrixE, i64 0) #11
  br label %417

397:                                              ; preds = %378, %374
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #11
  br label %398

398:                                              ; preds = %397, %370
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #11
  br label %467

399:                                              ; preds = %383
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %5, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %6, align 4
  br label %407

403:                                              ; preds = %386
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %5, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #11
  br label %407

407:                                              ; preds = %403, %399
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  br label %467

408:                                              ; preds = %390, %388
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %5, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %6, align 4
  br label %431

412:                                              ; preds = %391
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %5, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #11
  br label %431

416:                                              ; preds = %393
  br label %417

417:                                              ; preds = %416, %395
  %418 = phi ptr [ %396, %395 ], [ null, %416 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  store ptr %418, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %419 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt14CompoundMatrix7GetCompEii(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %31, ptr noundef nonnull align 8 dereferenceable(129) %419, i32 noundef 0, i32 noundef 0)
          to label %420 unwind label %432

420:                                              ; preds = %417
  %421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %422 unwind label %436

422:                                              ; preds = %420
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  %423 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %424 unwind label %441

424:                                              ; preds = %422
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities10curr_jac_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %32, ptr noundef nonnull align 8 dereferenceable(2025) %423)
          to label %425 unwind label %441

425:                                              ; preds = %424
  %426 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6MatrixEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %427 unwind label %445

427:                                              ; preds = %425
  %428 = icmp eq ptr %426, null
  br i1 %428, label %449, label %429

429:                                              ; preds = %427
  %430 = call ptr @__dynamic_cast(ptr %426, ptr @_ZTIN10SimTKIpopt6MatrixE, ptr @_ZTIN10SimTKIpopt14CompoundMatrixE, i64 0) #11
  br label %450

431:                                              ; preds = %412, %408
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %466

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

436:                                              ; preds = %420
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %5, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  br label %440

440:                                              ; preds = %436, %432
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  br label %466

441:                                              ; preds = %424, %422
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %5, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %6, align 4
  br label %456

445:                                              ; preds = %425
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %5, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  br label %456

449:                                              ; preds = %427
  br label %450

450:                                              ; preds = %449, %429
  %451 = phi ptr [ %430, %429 ], [ null, %449 ]
  store ptr %451, ptr %29, align 8, !tbaa !5
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  %452 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt14CompoundMatrix7GetCompEii(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %33, ptr noundef nonnull align 8 dereferenceable(129) %452, i32 noundef 0, i32 noundef 0)
          to label %453 unwind label %457

453:                                              ; preds = %450
  %454 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %455 unwind label %461

455:                                              ; preds = %453
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %533

456:                                              ; preds = %445, %441
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %466

457:                                              ; preds = %450
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %5, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %6, align 4
  br label %465

461:                                              ; preds = %453
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %5, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  br label %465

465:                                              ; preds = %461, %457
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  br label %466

466:                                              ; preds = %465, %456, %440, %431
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  br label %467

467:                                              ; preds = %466, %407, %398
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %1919

468:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  %469 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %470 unwind label %492

470:                                              ; preds = %468
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %35, ptr noundef nonnull align 8 dereferenceable(864) %469)
          to label %471 unwind label %492

471:                                              ; preds = %470
  %472 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %473 unwind label %496

473:                                              ; preds = %471
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %34, ptr noundef nonnull align 8 dereferenceable(280) %472)
          to label %474 unwind label %496

474:                                              ; preds = %473
  %475 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %476 unwind label %500

476:                                              ; preds = %474
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #11
  %477 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %478 unwind label %506

478:                                              ; preds = %476
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities11curr_grad_fEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %36, ptr noundef nonnull align 8 dereferenceable(2025) %477)
          to label %479 unwind label %506

479:                                              ; preds = %478
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %481 unwind label %510

481:                                              ; preds = %479
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  %482 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %483 unwind label %515

483:                                              ; preds = %481
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities10curr_jac_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %37, ptr noundef nonnull align 8 dereferenceable(2025) %482)
          to label %484 unwind label %515

484:                                              ; preds = %483
  %485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %486 unwind label %519

486:                                              ; preds = %484
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #11
  %487 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %488 unwind label %524

488:                                              ; preds = %486
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities10curr_jac_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %38, ptr noundef nonnull align 8 dereferenceable(2025) %487)
          to label %489 unwind label %524

489:                                              ; preds = %488
  %490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %491 unwind label %528

491:                                              ; preds = %489
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  br label %533

492:                                              ; preds = %470, %468
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %5, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %6, align 4
  br label %505

496:                                              ; preds = %473, %471
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %5, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %6, align 4
  br label %504

500:                                              ; preds = %474
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %5, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #11
  br label %504

504:                                              ; preds = %500, %496
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #11
  br label %505

505:                                              ; preds = %504, %492
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  br label %1919

506:                                              ; preds = %478, %476
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %5, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %6, align 4
  br label %514

510:                                              ; preds = %479
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %5, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #11
  br label %514

514:                                              ; preds = %510, %506
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  br label %1919

515:                                              ; preds = %483, %481
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %5, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %6, align 4
  br label %523

519:                                              ; preds = %484
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %5, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #11
  br label %523

523:                                              ; preds = %519, %515
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  br label %1919

524:                                              ; preds = %488, %486
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %5, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %6, align 4
  br label %532

528:                                              ; preds = %489
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %5, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #11
  br label %532

532:                                              ; preds = %528, %524
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  br label %1919

533:                                              ; preds = %491, %455
  %534 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 31
  %535 = invoke noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %534)
          to label %536 unwind label %551

536:                                              ; preds = %533
  br i1 %535, label %543, label %537

537:                                              ; preds = %536
  %538 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 16
  %539 = load i32, ptr %538, align 4, !tbaa !39
  %540 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 6
  %541 = load i32, ptr %540, align 8, !tbaa !40
  %542 = icmp sge i32 %539, %541
  br i1 %542, label %543, label %630

543:                                              ; preds = %537, %536
  %544 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 31
  %545 = invoke noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %544)
          to label %546 unwind label %551

546:                                              ; preds = %543
  br i1 %545, label %547, label %555

547:                                              ; preds = %546
  %548 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %549 unwind label %551

549:                                              ; preds = %547
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %548, i32 noundef 5, i32 noundef 9, ptr noundef @.str.30)
          to label %550 unwind label %551

550:                                              ; preds = %549
  br label %572

551:                                              ; preds = %628, %614, %610, %607, %604, %601, %598, %595, %592, %589, %584, %581, %578, %575, %572, %558, %557, %555, %549, %547, %543, %533
  %552 = landingpad { ptr, i32 }
          cleanup
  %553 = extractvalue { ptr, i32 } %552, 0
  store ptr %553, ptr %5, align 8
  %554 = extractvalue { ptr, i32 } %552, 1
  store i32 %554, ptr %6, align 4
  br label %1919

555:                                              ; preds = %546
  %556 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %557 unwind label %551

557:                                              ; preds = %555
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %556, i32 noundef 5, i32 noundef 9, ptr noundef @.str.31)
          to label %558 unwind label %551

558:                                              ; preds = %557
  %559 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %560 unwind label %551

560:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %561 unwind label %563

561:                                              ; preds = %560
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %559, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %562 unwind label %567

562:                                              ; preds = %561
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #11
  br label %572

563:                                              ; preds = %560
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %5, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %6, align 4
  br label %571

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

571:                                              ; preds = %567, %563
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #11
  br label %1919

572:                                              ; preds = %562, %550
  %573 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 31
  %574 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %573, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %575 unwind label %551

575:                                              ; preds = %572
  %576 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 32
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %576, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %578 unwind label %551

578:                                              ; preds = %575
  %579 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 33
  %580 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %581 unwind label %551

581:                                              ; preds = %578
  %582 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 34
  %583 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %582, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %584 unwind label %551

584:                                              ; preds = %581
  %585 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 17
  store i32 0, ptr %585, align 8, !tbaa !41
  %586 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 16
  store i32 0, ptr %586, align 4, !tbaa !39
  %587 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 18
  %588 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %587, ptr noundef null)
          to label %589 unwind label %551

589:                                              ; preds = %584
  %590 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 19
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %590, ptr noundef null)
          to label %592 unwind label %551

592:                                              ; preds = %589
  %593 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 20
  %594 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %593, ptr noundef null)
          to label %595 unwind label %551

595:                                              ; preds = %592
  %596 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 21
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %596, ptr noundef null)
          to label %598 unwind label %551

598:                                              ; preds = %595
  %599 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 22
  %600 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %599, ptr noundef null)
          to label %601 unwind label %551

601:                                              ; preds = %598
  %602 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 25
  %603 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %602, ptr noundef null)
          to label %604 unwind label %551

604:                                              ; preds = %601
  %605 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 26
  %606 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %605, ptr noundef null)
          to label %607 unwind label %551

607:                                              ; preds = %604
  %608 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 27
  %609 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %608, ptr noundef null)
          to label %610 unwind label %551

610:                                              ; preds = %607
  %611 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 28
  store i8 0, ptr %611, align 8, !tbaa !42
  %612 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 30
  %613 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %612, ptr noundef null)
          to label %614 unwind label %551

614:                                              ; preds = %610
  %615 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 29
  %616 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %615, ptr noundef null)
          to label %617 unwind label %551

617:                                              ; preds = %614
  %618 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %619 = load i8, ptr %618, align 8, !tbaa !9, !range !31, !noundef !32
  %620 = trunc i8 %619 to i1
  br i1 %620, label %621, label %624

621:                                              ; preds = %617
  %622 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double -1.000000e+00, ptr %622, align 8, !tbaa !43
  %623 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 10
  store double -1.000000e+00, ptr %623, align 8, !tbaa !37
  br label %628

624:                                              ; preds = %617
  %625 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 5
  %626 = load double, ptr %625, align 8, !tbaa !44
  %627 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double %626, ptr %627, align 8, !tbaa !43
  br label %628

628:                                              ; preds = %624, %621
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater4SetWEv(ptr noundef nonnull align 8 dereferenceable(424) %108)
          to label %629 unwind label %551

629:                                              ; preds = %628
  store i32 1, ptr %41, align 4
  br label %1906

630:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  %631 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %632 unwind label %679

632:                                              ; preds = %630
  %633 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %631)
          to label %634 unwind label %679

634:                                              ; preds = %632
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef %633)
          to label %635 unwind label %679

635:                                              ; preds = %634
  %636 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %637 unwind label %683

637:                                              ; preds = %635
  %638 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %639 unwind label %683

639:                                              ; preds = %637
  %640 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 31
  %641 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %640)
          to label %642 unwind label %683

642:                                              ; preds = %639
  invoke void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205) %636, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %638, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %641, double noundef 0.000000e+00)
          to label %643 unwind label %683

643:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  %644 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %645 unwind label %687

645:                                              ; preds = %643
  %646 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %644)
          to label %647 unwind label %687

647:                                              ; preds = %645
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef %646)
          to label %648 unwind label %687

648:                                              ; preds = %647
  %649 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %650 = load i8, ptr %649, align 8, !tbaa !9, !range !31, !noundef !32
  %651 = trunc i8 %650 to i1
  br i1 %651, label %652, label %723

652:                                              ; preds = %648
  %653 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %654 unwind label %691

654:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  %655 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %656 unwind label %695

656:                                              ; preds = %654
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %45, ptr noundef nonnull align 8 dereferenceable(864) %655)
          to label %657 unwind label %695

657:                                              ; preds = %656
  %658 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %659 unwind label %699

659:                                              ; preds = %657
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %44, ptr noundef nonnull align 8 dereferenceable(280) %658)
          to label %660 unwind label %699

660:                                              ; preds = %659
  %661 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %662 unwind label %703

662:                                              ; preds = %660
  %663 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %664 unwind label %703

664:                                              ; preds = %662
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %653, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %661, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %663)
          to label %665 unwind label %703

665:                                              ; preds = %664
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  %666 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %667 unwind label %691

667:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #11
  %668 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %669 unwind label %709

669:                                              ; preds = %667
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %47, ptr noundef nonnull align 8 dereferenceable(864) %668)
          to label %670 unwind label %709

670:                                              ; preds = %669
  %671 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %672 unwind label %713

672:                                              ; preds = %670
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %46, ptr noundef nonnull align 8 dereferenceable(280) %671)
          to label %673 unwind label %713

673:                                              ; preds = %672
  %674 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %675 unwind label %717

675:                                              ; preds = %673
  %676 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %677 unwind label %717

677:                                              ; preds = %675
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %666, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %674, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %676)
          to label %678 unwind label %717

678:                                              ; preds = %677
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  br label %776

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

683:                                              ; preds = %642, %639, %637, %635
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %5, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %6, align 4
  br label %1917

687:                                              ; preds = %647, %645, %643
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %5, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %6, align 4
  br label %1916

691:                                              ; preds = %790, %776, %734, %723, %665, %652
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %5, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %6, align 4
  br label %1915

695:                                              ; preds = %656, %654
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %5, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %6, align 4
  br label %708

699:                                              ; preds = %659, %657
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %5, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %6, align 4
  br label %707

703:                                              ; preds = %664, %662, %660
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %5, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #11
  br label %707

707:                                              ; preds = %703, %699
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  br label %708

708:                                              ; preds = %707, %695
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  br label %1915

709:                                              ; preds = %669, %667
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %5, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %6, align 4
  br label %722

713:                                              ; preds = %672, %670
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %5, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %6, align 4
  br label %721

717:                                              ; preds = %677, %675, %673
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %5, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #11
  br label %721

721:                                              ; preds = %717, %713
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #11
  br label %722

722:                                              ; preds = %721, %709
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  br label %1915

723:                                              ; preds = %648
  %724 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %725 unwind label %691

725:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #11
  %726 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %727 unwind label %748

727:                                              ; preds = %725
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities11curr_grad_fEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %48, ptr noundef nonnull align 8 dereferenceable(2025) %726)
          to label %728 unwind label %748

728:                                              ; preds = %727
  %729 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %730 unwind label %752

730:                                              ; preds = %728
  %731 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 32
  %732 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %731)
          to label %733 unwind label %752

733:                                              ; preds = %730
  invoke void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205) %724, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %729, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %732, double noundef 0.000000e+00)
          to label %734 unwind label %752

734:                                              ; preds = %733
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  %735 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %736 unwind label %691

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

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

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

741:                                              ; preds = %739
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  %742 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %743 unwind label %765

743:                                              ; preds = %741
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities26curr_jac_dT_times_curr_y_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %50, ptr noundef nonnull align 8 dereferenceable(2025) %742)
          to label %744 unwind label %765

744:                                              ; preds = %743
  %745 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %746 unwind label %769

746:                                              ; preds = %744
  invoke void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205) %735, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %740, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %745, double noundef 1.000000e+00)
          to label %747 unwind label %769

747:                                              ; preds = %746
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #11
  br label %776

748:                                              ; preds = %727, %725
  %749 = landingpad { ptr, i32 }
          cleanup
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %5, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %6, align 4
  br label %756

752:                                              ; preds = %733, %730, %728
  %753 = landingpad { ptr, i32 }
          cleanup
  %754 = extractvalue { ptr, i32 } %753, 0
  store ptr %754, ptr %5, align 8
  %755 = extractvalue { ptr, i32 } %753, 1
  store i32 %755, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #11
  br label %756

756:                                              ; preds = %752, %748
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  br label %1915

757:                                              ; preds = %738, %736
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %5, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %6, align 4
  br label %775

761:                                              ; preds = %739
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %5, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %6, align 4
  br label %774

765:                                              ; preds = %743, %741
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %5, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %6, align 4
  br label %773

769:                                              ; preds = %746, %744
  %770 = landingpad { ptr, i32 }
          cleanup
  %771 = extractvalue { ptr, i32 } %770, 0
  store ptr %771, ptr %5, align 8
  %772 = extractvalue { ptr, i32 } %770, 1
  store i32 %772, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  br label %773

773:                                              ; preds = %769, %765
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  br label %774

774:                                              ; preds = %773, %761
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #11
  br label %775

775:                                              ; preds = %774, %757
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #11
  br label %1915

776:                                              ; preds = %747, %678
  %777 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 33
  %778 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %777)
          to label %779 unwind label %691

779:                                              ; preds = %776
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #11
  %780 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %781 unwind label %814

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

782:                                              ; preds = %781
  %783 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %784 unwind label %818

784:                                              ; preds = %782
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %51, ptr noundef nonnull align 8 dereferenceable(280) %783)
          to label %785 unwind label %818

785:                                              ; preds = %784
  %786 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %787 unwind label %822

787:                                              ; preds = %785
  %788 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %789 unwind label %822

789:                                              ; preds = %787
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %778, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %786, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %788)
          to label %790 unwind label %822

790:                                              ; preds = %789
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  %791 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 34
  %792 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %791)
          to label %793 unwind label %691

793:                                              ; preds = %790
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  %794 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %795 unwind label %828

795:                                              ; preds = %793
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %54, ptr noundef nonnull align 8 dereferenceable(864) %794)
          to label %796 unwind label %828

796:                                              ; preds = %795
  %797 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %798 unwind label %832

798:                                              ; preds = %796
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %53, ptr noundef nonnull align 8 dereferenceable(280) %797)
          to label %799 unwind label %832

799:                                              ; preds = %798
  %800 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %801 unwind label %836

801:                                              ; preds = %799
  %802 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %803 unwind label %836

803:                                              ; preds = %801
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %792, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %800, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %802)
          to label %804 unwind label %836

804:                                              ; preds = %803
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %805 unwind label %842

805:                                              ; preds = %804
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %806 unwind label %846

806:                                              ; preds = %805
  %807 = invoke noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6MatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %808 unwind label %850

808:                                              ; preds = %806
  br i1 %807, label %809, label %854

809:                                              ; preds = %808
  %810 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %811 unwind label %850

811:                                              ; preds = %809
  %812 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %813 unwind label %850

813:                                              ; preds = %811
  br label %887

814:                                              ; preds = %781, %779
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %5, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %6, align 4
  br label %827

818:                                              ; preds = %784, %782
  %819 = landingpad { ptr, i32 }
          cleanup
  %820 = extractvalue { ptr, i32 } %819, 0
  store ptr %820, ptr %5, align 8
  %821 = extractvalue { ptr, i32 } %819, 1
  store i32 %821, ptr %6, align 4
  br label %826

822:                                              ; preds = %789, %787, %785
  %823 = landingpad { ptr, i32 }
          cleanup
  %824 = extractvalue { ptr, i32 } %823, 0
  store ptr %824, ptr %5, align 8
  %825 = extractvalue { ptr, i32 } %823, 1
  store i32 %825, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  br label %826

826:                                              ; preds = %822, %818
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #11
  br label %827

827:                                              ; preds = %826, %814
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  br label %1915

828:                                              ; preds = %795, %793
  %829 = landingpad { ptr, i32 }
          cleanup
  %830 = extractvalue { ptr, i32 } %829, 0
  store ptr %830, ptr %5, align 8
  %831 = extractvalue { ptr, i32 } %829, 1
  store i32 %831, ptr %6, align 4
  br label %841

832:                                              ; preds = %798, %796
  %833 = landingpad { ptr, i32 }
          cleanup
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %5, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %6, align 4
  br label %840

836:                                              ; preds = %803, %801, %799
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %5, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #11
  br label %840

840:                                              ; preds = %836, %832
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #11
  br label %841

841:                                              ; preds = %840, %828
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  br label %1915

842:                                              ; preds = %804
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %5, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %6, align 4
  br label %1914

846:                                              ; preds = %805
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %5, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %6, align 4
  br label %1913

850:                                              ; preds = %889, %887, %885, %883, %881, %879, %878, %876, %874, %872, %870, %865, %863, %861, %856, %854, %811, %809, %806
  %851 = landingpad { ptr, i32 }
          cleanup
  %852 = extractvalue { ptr, i32 } %851, 0
  store ptr %852, ptr %5, align 8
  %853 = extractvalue { ptr, i32 } %851, 1
  store i32 %853, ptr %6, align 4
  br label %1912

854:                                              ; preds = %808
  %855 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %856 unwind label %850

856:                                              ; preds = %854
  %857 = load ptr, ptr %855, align 8, !tbaa !33
  %858 = getelementptr inbounds ptr, ptr %857, i64 2
  %859 = load ptr, ptr %858, align 8
  %860 = invoke noundef ptr %859(ptr noundef nonnull align 8 dereferenceable(16) %855)
          to label %861 unwind label %850

861:                                              ; preds = %856
  %862 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef %860)
          to label %863 unwind label %850

863:                                              ; preds = %861
  %864 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %865 unwind label %850

865:                                              ; preds = %863
  %866 = load ptr, ptr %864, align 8, !tbaa !33
  %867 = getelementptr inbounds ptr, ptr %866, i64 2
  %868 = load ptr, ptr %867, align 8
  %869 = invoke noundef ptr %868(ptr noundef nonnull align 8 dereferenceable(16) %864)
          to label %870 unwind label %850

870:                                              ; preds = %865
  %871 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef %869)
          to label %872 unwind label %850

872:                                              ; preds = %870
  %873 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %874 unwind label %850

874:                                              ; preds = %872
  %875 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %876 unwind label %850

876:                                              ; preds = %874
  %877 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %878 unwind label %850

878:                                              ; preds = %876
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %873, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %875, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %877)
          to label %879 unwind label %850

879:                                              ; preds = %878
  %880 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %881 unwind label %850

881:                                              ; preds = %879
  %882 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %883 unwind label %850

883:                                              ; preds = %881
  %884 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %885 unwind label %850

885:                                              ; preds = %883
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %880, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %882, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %884)
          to label %886 unwind label %850

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886, %813
  %888 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef null)
          to label %889 unwind label %850

889:                                              ; preds = %887
  %890 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef null)
          to label %891 unwind label %850

891:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %892 unwind label %923

892:                                              ; preds = %891
  %893 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %894 = load i8, ptr %893, align 8, !tbaa !9, !range !31, !noundef !32
  %895 = trunc i8 %894 to i1
  br i1 %895, label %896, label %931

896:                                              ; preds = %892
  %897 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %898 unwind label %927

898:                                              ; preds = %896
  %899 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %900 unwind label %927

900:                                              ; preds = %898
  %901 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %899)
          to label %902 unwind label %927

902:                                              ; preds = %900
  %903 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef %901)
          to label %904 unwind label %927

904:                                              ; preds = %902
  %905 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %906 unwind label %927

906:                                              ; preds = %904
  %907 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 14
  %908 = load double, ptr %907, align 8, !tbaa !36
  %909 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %910 unwind label %927

910:                                              ; preds = %906
  invoke void @_ZN10SimTKIpopt6Vector12AddOneVectorEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(205) %905, double noundef %908, ptr noundef nonnull align 8 dereferenceable(205) %909, double noundef 0.000000e+00)
          to label %911 unwind label %927

911:                                              ; preds = %910
  %912 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %913 unwind label %927

913:                                              ; preds = %911
  %914 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 13
  %915 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %914)
          to label %916 unwind label %927

916:                                              ; preds = %913
  invoke void @_ZN10SimTKIpopt6Vector19ElementWiseMultiplyERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %912, ptr noundef nonnull align 8 dereferenceable(205) %915)
          to label %917 unwind label %927

917:                                              ; preds = %916
  %918 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %919 unwind label %927

919:                                              ; preds = %917
  %920 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %921 unwind label %927

921:                                              ; preds = %919
  invoke void @_ZN10SimTKIpopt6Vector12AddOneVectorEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(205) %918, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %920, double noundef 1.000000e+00)
          to label %922 unwind label %927

922:                                              ; preds = %921
  br label %931

923:                                              ; preds = %891
  %924 = landingpad { ptr, i32 }
          cleanup
  %925 = extractvalue { ptr, i32 } %924, 0
  store ptr %925, ptr %5, align 8
  %926 = extractvalue { ptr, i32 } %924, 1
  store i32 %926, ptr %6, align 4
  br label %1911

927:                                              ; preds = %921, %919, %917, %916, %913, %911, %910, %906, %904, %902, %900, %898, %896
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %5, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %6, align 4
  br label %1910

931:                                              ; preds = %922, %892
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #11
  store i8 0, ptr %58, align 1, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #11
  store i8 0, ptr %59, align 1, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %932 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %933 unwind label %949

933:                                              ; preds = %931
  %934 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %932)
          to label %935 unwind label %949

935:                                              ; preds = %933
  store double %934, ptr %60, align 8, !tbaa !46
  %936 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %937 unwind label %949

937:                                              ; preds = %935
  %938 = load double, ptr %60, align 8, !tbaa !46
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %936, i32 noundef 5, i32 noundef 9, ptr noundef @.str.33, double noundef %938)
          to label %939 unwind label %949

939:                                              ; preds = %937
  %940 = load double, ptr %60, align 8, !tbaa !46
  %941 = call noundef double @_ZNSt14numeric_limitsIdE7epsilonEv() #11
  %942 = fmul double 1.000000e+02, %941
  %943 = fcmp olt double %940, %942
  br i1 %943, label %944, label %962

944:                                              ; preds = %939
  store i8 1, ptr %58, align 1, !tbaa !45
  %945 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %946 unwind label %949

946:                                              ; preds = %944
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %947 unwind label %953

947:                                              ; preds = %946
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %945, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %948 unwind label %957

948:                                              ; preds = %947
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #11
  br label %962

949:                                              ; preds = %1898, %1891, %1888, %1885, %1882, %1879, %1877, %1860, %1849, %1491, %1489, %1431, %1429, %1427, %1426, %1412, %1411, %1409, %1408, %1404, %1402, %983, %972, %970, %968, %944, %937, %935, %933, %931
  %950 = landingpad { ptr, i32 }
          cleanup
  %951 = extractvalue { ptr, i32 } %950, 0
  store ptr %951, ptr %5, align 8
  %952 = extractvalue { ptr, i32 } %950, 1
  store i32 %952, ptr %6, align 4
  br label %1909

953:                                              ; preds = %946
  %954 = landingpad { ptr, i32 }
          cleanup
  %955 = extractvalue { ptr, i32 } %954, 0
  store ptr %955, ptr %5, align 8
  %956 = extractvalue { ptr, i32 } %954, 1
  store i32 %956, ptr %6, align 4
  br label %961

957:                                              ; preds = %947
  %958 = landingpad { ptr, i32 }
          cleanup
  %959 = extractvalue { ptr, i32 } %958, 0
  store ptr %959, ptr %5, align 8
  %960 = extractvalue { ptr, i32 } %958, 1
  store i32 %960, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  br label %961

961:                                              ; preds = %957, %953
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #11
  br label %1909

962:                                              ; preds = %948, %939
  %963 = load i8, ptr %58, align 1, !tbaa !45, !range !31, !noundef !32
  %964 = trunc i8 %963 to i1
  br i1 %964, label %1846, label %965

965:                                              ; preds = %962
  %966 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 3
  %967 = load i32, ptr %966, align 4, !tbaa !47
  switch i32 %967, label %1845 [
    i32 0, label %968
    i32 1, label %1402
  ]

968:                                              ; preds = %965
  %969 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %970 unwind label %949

970:                                              ; preds = %968
  %971 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %972 unwind label %949

972:                                              ; preds = %970
  %973 = invoke noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater17CheckSkippingBFGSERNS_6VectorES2_(ptr noundef nonnull align 8 dereferenceable(424) %108, ptr noundef nonnull align 8 dereferenceable(205) %969, ptr noundef nonnull align 8 dereferenceable(205) %971)
          to label %974 unwind label %949

974:                                              ; preds = %972
  %975 = zext i1 %973 to i8
  store i8 %975, ptr %58, align 1, !tbaa !45
  %976 = load i8, ptr %58, align 1, !tbaa !45, !range !31, !noundef !32
  %977 = trunc i8 %976 to i1
  br i1 %977, label %978, label %979

978:                                              ; preds = %974
  br label %1845

979:                                              ; preds = %974
  %980 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %981 = load i8, ptr %980, align 8, !tbaa !9, !range !31, !noundef !32
  %982 = trunc i8 %981 to i1
  br i1 %982, label %983, label %985

983:                                              ; preds = %979
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater23StoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %108)
          to label %984 unwind label %949

984:                                              ; preds = %983
  br label %985

985:                                              ; preds = %984, %979
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #11
  %986 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %987 unwind label %1015

987:                                              ; preds = %985
  %988 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %989 unwind label %1015

989:                                              ; preds = %987
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %990 unwind label %1015

990:                                              ; preds = %989
  %991 = invoke noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater18UpdateInternalDataERKNS_6VectorES3_NS_8SmartPtrIS1_EE(ptr noundef nonnull align 8 dereferenceable(424) %108, ptr noundef nonnull align 8 dereferenceable(205) %986, ptr noundef nonnull align 8 dereferenceable(205) %988, ptr noundef %64)
          to label %992 unwind label %1019

992:                                              ; preds = %990
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #11
  %993 = zext i1 %991 to i8
  store i8 %993, ptr %63, align 1, !tbaa !45
  %994 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %995 = load i8, ptr %994, align 8, !tbaa !9, !range !31, !noundef !32
  %996 = trunc i8 %995 to i1
  br i1 %996, label %997, label %1041

997:                                              ; preds = %992
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #11
  %998 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 21
  %999 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %998)
          to label %1000 unwind label %1023

1000:                                             ; preds = %997
  %1001 = invoke noundef double @_ZNK10SimTKIpopt6Vector3MinEv(ptr noundef nonnull align 8 dereferenceable(205) %999)
          to label %1002 unwind label %1023

1002:                                             ; preds = %1000
  store double %1001, ptr %65, align 8, !tbaa !46
  %1003 = load double, ptr %65, align 8, !tbaa !46
  %1004 = fcmp ole double %1003, 0.000000e+00
  br i1 %1004, label %1005, label %1036

1005:                                             ; preds = %1002
  %1006 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1007 unwind label %1023

1007:                                             ; preds = %1005
  %1008 = load double, ptr %65, align 8, !tbaa !46
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %1006, i32 noundef 5, i32 noundef 9, ptr noundef @.str.35, double noundef %1008)
          to label %1009 unwind label %1023

1009:                                             ; preds = %1007
  %1010 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1011 unwind label %1023

1011:                                             ; preds = %1009
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %1012 unwind label %1027

1012:                                             ; preds = %1011
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %1010, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %1013 unwind label %1031

1013:                                             ; preds = %1012
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #11
  store i8 1, ptr %58, align 1, !tbaa !45
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater25RestoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %108)
          to label %1014 unwind label %1023

1014:                                             ; preds = %1013
  store i32 2, ptr %41, align 4
  br label %1037

1015:                                             ; preds = %989, %987, %985
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %5, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %6, align 4
  br label %1401

1019:                                             ; preds = %990
  %1020 = landingpad { ptr, i32 }
          cleanup
  %1021 = extractvalue { ptr, i32 } %1020, 0
  store ptr %1021, ptr %5, align 8
  %1022 = extractvalue { ptr, i32 } %1020, 1
  store i32 %1022, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #11
  br label %1401

1023:                                             ; preds = %1013, %1009, %1007, %1005, %1000, %997
  %1024 = landingpad { ptr, i32 }
          cleanup
  %1025 = extractvalue { ptr, i32 } %1024, 0
  store ptr %1025, ptr %5, align 8
  %1026 = extractvalue { ptr, i32 } %1024, 1
  store i32 %1026, ptr %6, align 4
  br label %1040

1027:                                             ; preds = %1011
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %5, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %6, align 4
  br label %1035

1031:                                             ; preds = %1012
  %1032 = landingpad { ptr, i32 }
          cleanup
  %1033 = extractvalue { ptr, i32 } %1032, 0
  store ptr %1033, ptr %5, align 8
  %1034 = extractvalue { ptr, i32 } %1032, 1
  store i32 %1034, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  br label %1035

1035:                                             ; preds = %1031, %1027
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #11
  br label %1040

1036:                                             ; preds = %1002
  store i32 0, ptr %41, align 4
  br label %1037

1037:                                             ; preds = %1036, %1014
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  %1038 = load i32, ptr %41, align 4
  switch i32 %1038, label %1400 [
    i32 0, label %1039
  ]

1039:                                             ; preds = %1037
  br label %1041

1040:                                             ; preds = %1035, %1023
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  br label %1401

1041:                                             ; preds = %1039, %992
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #11
  %1042 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %1043 unwind label %1054

1043:                                             ; preds = %1041
  %1044 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %1045 unwind label %1054

1045:                                             ; preds = %1043
  %1046 = invoke noundef double @_ZNK10SimTKIpopt6Vector3DotERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %1042, ptr noundef nonnull align 8 dereferenceable(205) %1044)
          to label %1047 unwind label %1054

1047:                                             ; preds = %1045
  store double %1046, ptr %68, align 8, !tbaa !46
  %1048 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %1049 = load i8, ptr %1048, align 8, !tbaa !9, !range !31, !noundef !32
  %1050 = trunc i8 %1049 to i1
  br i1 %1050, label %1128, label %1051

1051:                                             ; preds = %1047
  %1052 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 4
  %1053 = load i32, ptr %1052, align 8, !tbaa !48
  switch i32 %1053, label %1080 [
    i32 0, label %1058
    i32 1, label %1067
    i32 2, label %1076
  ]

1054:                                             ; preds = %1114, %1112, %1107, %1103, %1097, %1082, %1080, %1069, %1067, %1061, %1058, %1045, %1043, %1041
  %1055 = landingpad { ptr, i32 }
          cleanup
  %1056 = extractvalue { ptr, i32 } %1055, 0
  store ptr %1056, ptr %5, align 8
  %1057 = extractvalue { ptr, i32 } %1055, 1
  store i32 %1057, ptr %6, align 4
  br label %1399

1058:                                             ; preds = %1051
  %1059 = load double, ptr %68, align 8, !tbaa !46
  %1060 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %1061 unwind label %1054

1061:                                             ; preds = %1058
  %1062 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %1060)
          to label %1063 unwind label %1054

1063:                                             ; preds = %1061
  %1064 = call double @pow(double noundef %1062, double noundef 2.000000e+00) #11
  %1065 = fdiv double %1059, %1064
  %1066 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double %1065, ptr %1066, align 8, !tbaa !43
  br label %1080

1067:                                             ; preds = %1051
  %1068 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %1069 unwind label %1054

1069:                                             ; preds = %1067
  %1070 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %1068)
          to label %1071 unwind label %1054

1071:                                             ; preds = %1069
  %1072 = call double @pow(double noundef %1070, double noundef 2.000000e+00) #11
  %1073 = load double, ptr %68, align 8, !tbaa !46
  %1074 = fdiv double %1072, %1073
  %1075 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double %1074, ptr %1075, align 8, !tbaa !43
  br label %1080

1076:                                             ; preds = %1051
  %1077 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 5
  %1078 = load double, ptr %1077, align 8, !tbaa !44
  %1079 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double %1078, ptr %1079, align 8, !tbaa !43
  br label %1080

1080:                                             ; preds = %1076, %1071, %1063, %1051
  %1081 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1082 unwind label %1054

1082:                                             ; preds = %1080
  %1083 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1084 = load double, ptr %1083, align 8, !tbaa !43
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %1081, i32 noundef 5, i32 noundef 9, ptr noundef @.str.37, double noundef %1084)
          to label %1085 unwind label %1054

1085:                                             ; preds = %1082
  %1086 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1087 = load double, ptr %1086, align 8, !tbaa !43
  %1088 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 7
  %1089 = load double, ptr %1088, align 8, !tbaa !49
  %1090 = fcmp olt double %1087, %1089
  br i1 %1090, label %1097, label %1091

1091:                                             ; preds = %1085
  %1092 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1093 = load double, ptr %1092, align 8, !tbaa !43
  %1094 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 8
  %1095 = load double, ptr %1094, align 8, !tbaa !50
  %1096 = fcmp ogt double %1093, %1095
  br i1 %1096, label %1097, label %1127

1097:                                             ; preds = %1091, %1085
  %1098 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 8
  %1099 = load double, ptr %1098, align 8, !tbaa !50
  %1100 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1101 = load double, ptr %1100, align 8, !tbaa !43
  %1102 = invoke noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %1099, double noundef %1101)
          to label %1103 unwind label %1054

1103:                                             ; preds = %1097
  %1104 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 7
  %1105 = load double, ptr %1104, align 8, !tbaa !49
  %1106 = invoke noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %1102, double noundef %1105)
          to label %1107 unwind label %1054

1107:                                             ; preds = %1103
  %1108 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double %1106, ptr %1108, align 8, !tbaa !43
  %1109 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1110 unwind label %1054

1110:                                             ; preds = %1107
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %1111 unwind label %1118

1111:                                             ; preds = %1110
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %1109, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %1112 unwind label %1122

1112:                                             ; preds = %1111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #11
  %1113 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1114 unwind label %1054

1114:                                             ; preds = %1112
  %1115 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1116 = load double, ptr %1115, align 8, !tbaa !43
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %1113, i32 noundef 5, i32 noundef 9, ptr noundef @.str.39, double noundef %1116)
          to label %1117 unwind label %1054

1117:                                             ; preds = %1114
  br label %1127

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

1122:                                             ; preds = %1111
  %1123 = landingpad { ptr, i32 }
          cleanup
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %5, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #11
  br label %1126

1126:                                             ; preds = %1122, %1118
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #11
  br label %1399

1127:                                             ; preds = %1117, %1091
  br label %1128

1128:                                             ; preds = %1127, %1047
  %1129 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 2
  %1130 = load i32, ptr %1129, align 8, !tbaa !51
  %1131 = icmp eq i32 %1130, 0
  br i1 %1131, label %1132, label %1133

1132:                                             ; preds = %1128
  store i32 2, ptr %41, align 4
  br label %1398

1133:                                             ; preds = %1128
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #11
  %1134 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %1135 unwind label %1152

1135:                                             ; preds = %1133
  %1136 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector11MakeNewCopyEv(ptr noundef nonnull align 8 dereferenceable(205) %1134)
          to label %1137 unwind label %1152

1137:                                             ; preds = %1135
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef %1136)
          to label %1138 unwind label %1152

1138:                                             ; preds = %1137
  %1139 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %1140 unwind label %1156

1140:                                             ; preds = %1138
  %1141 = load double, ptr %68, align 8, !tbaa !46
  %1142 = call double @sqrt(double noundef %1141) #11
  %1143 = fdiv double 1.000000e+00, %1142
  invoke void @_ZN10SimTKIpopt6Vector4ScalEd(ptr noundef nonnull align 8 dereferenceable(205) %1139, double noundef %1143)
          to label %1144 unwind label %1156

1144:                                             ; preds = %1140
  %1145 = load i8, ptr %63, align 1, !tbaa !45, !range !31, !noundef !32
  %1146 = trunc i8 %1145 to i1
  br i1 %1146, label %1147, label %1160

1147:                                             ; preds = %1144
  %1148 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 25
  %1149 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %1150 unwind label %1156

1150:                                             ; preds = %1147
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater18AugmentMultiVectorERNS_8SmartPtrINS_17MultiVectorMatrixEEERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(424) %108, ptr noundef nonnull align 8 dereferenceable(8) %1148, ptr noundef nonnull align 8 dereferenceable(205) %1149)
          to label %1151 unwind label %1156

1151:                                             ; preds = %1150
  br label %1165

1152:                                             ; preds = %1137, %1135, %1133
  %1153 = landingpad { ptr, i32 }
          cleanup
  %1154 = extractvalue { ptr, i32 } %1153, 0
  store ptr %1154, ptr %5, align 8
  %1155 = extractvalue { ptr, i32 } %1153, 1
  store i32 %1155, ptr %6, align 4
  br label %1397

1156:                                             ; preds = %1163, %1160, %1150, %1147, %1140, %1138
  %1157 = landingpad { ptr, i32 }
          cleanup
  %1158 = extractvalue { ptr, i32 } %1157, 0
  store ptr %1158, ptr %5, align 8
  %1159 = extractvalue { ptr, i32 } %1157, 1
  store i32 %1159, ptr %6, align 4
  br label %1396

1160:                                             ; preds = %1144
  %1161 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 25
  %1162 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %1163 unwind label %1156

1163:                                             ; preds = %1160
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater16ShiftMultiVectorERNS_8SmartPtrINS_17MultiVectorMatrixEEERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(424) %108, ptr noundef nonnull align 8 dereferenceable(8) %1161, ptr noundef nonnull align 8 dereferenceable(205) %1162)
          to label %1164 unwind label %1156

1164:                                             ; preds = %1163
  br label %1165

1165:                                             ; preds = %1164, %1151
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #11
  %1166 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 21
  %1167 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1166)
          to label %1168 unwind label %1225

1168:                                             ; preds = %1165
  invoke void @_ZNK10SimTKIpopt11DenseVector18MakeNewDenseVectorEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.23") align 8 %72, ptr noundef nonnull align 8 dereferenceable(240) %1167)
          to label %1169 unwind label %1225

1169:                                             ; preds = %1168
  %1170 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %1171 unwind label %1229

1171:                                             ; preds = %1169
  %1172 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 21
  %1173 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1172)
          to label %1174 unwind label %1229

1174:                                             ; preds = %1171
  invoke void @_ZN10SimTKIpopt6Vector4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %1170, ptr noundef nonnull align 8 dereferenceable(205) %1173)
          to label %1175 unwind label %1229

1175:                                             ; preds = %1174
  %1176 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %1177 unwind label %1229

1177:                                             ; preds = %1175
  invoke void @_ZN10SimTKIpopt6Vector15ElementWiseSqrtEv(ptr noundef nonnull align 8 dereferenceable(205) %1176)
          to label %1178 unwind label %1229

1178:                                             ; preds = %1177
  %1179 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %1180 unwind label %1229

1180:                                             ; preds = %1178
  invoke void @_ZN10SimTKIpopt6Vector21ElementWiseReciprocalEv(ptr noundef nonnull align 8 dereferenceable(205) %1179)
          to label %1181 unwind label %1229

1181:                                             ; preds = %1180
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #11
  %1182 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 22
  %1183 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1182)
          to label %1184 unwind label %1233

1184:                                             ; preds = %1181
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %73, ptr noundef nonnull align 8 dereferenceable(89) %1183)
          to label %1185 unwind label %1233

1185:                                             ; preds = %1184
  %1186 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %1187 unwind label %1237

1187:                                             ; preds = %1185
  %1188 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 22
  %1189 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1188)
          to label %1190 unwind label %1237

1190:                                             ; preds = %1187
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(89) %1186, ptr noundef nonnull align 8 dereferenceable(89) %1189)
          to label %1191 unwind label %1237

1191:                                             ; preds = %1190
  %1192 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %1193 unwind label %1237

1193:                                             ; preds = %1191
  %1194 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %1195 unwind label %1237

1195:                                             ; preds = %1193
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix12ScaleColumnsERKNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89) %1192, ptr noundef nonnull align 8 dereferenceable(240) %1194)
          to label %1196 unwind label %1237

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #11
  %1197 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #13
          to label %1198 unwind label %1241

1198:                                             ; preds = %1196
  %1199 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 17
  %1200 = load i32, ptr %1199, align 8, !tbaa !41
  invoke void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20) %1197, i32 noundef %1200)
          to label %1201 unwind label %1245

1201:                                             ; preds = %1198
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef %1197)
          to label %1202 unwind label %1241

1202:                                             ; preds = %1201
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #11
  %1203 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %1204 unwind label %1249

1204:                                             ; preds = %1202
  %1205 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseSymMatrixSpace21MakeNewDenseSymMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %1203)
          to label %1206 unwind label %1249

1206:                                             ; preds = %1204
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef %1205)
          to label %1207 unwind label %1249

1207:                                             ; preds = %1206
  %1208 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %1209 unwind label %1253

1209:                                             ; preds = %1207
  %1210 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %1211 unwind label %1253

1211:                                             ; preds = %1209
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix14HighRankUpdateEbdRKNS_14DenseGenMatrixEd(ptr noundef nonnull align 8 dereferenceable(97) %1208, i1 noundef zeroext false, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(89) %1210, double noundef 0.000000e+00)
          to label %1212 unwind label %1253

1212:                                             ; preds = %1211
  %1213 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %1214 = load i8, ptr %1213, align 8, !tbaa !9, !range !31, !noundef !32
  %1215 = trunc i8 %1214 to i1
  br i1 %1215, label %1257, label %1216

1216:                                             ; preds = %1212
  %1217 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %1218 unwind label %1253

1218:                                             ; preds = %1216
  %1219 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1220 = load double, ptr %1219, align 8, !tbaa !43
  %1221 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 27
  %1222 = invoke noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1221)
          to label %1223 unwind label %1253

1223:                                             ; preds = %1218
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix9AddMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(97) %1217, double noundef %1220, ptr noundef nonnull align 8 dereferenceable(97) %1222, double noundef 1.000000e+00)
          to label %1224 unwind label %1253

1224:                                             ; preds = %1223
  br label %1266

1225:                                             ; preds = %1168, %1165
  %1226 = landingpad { ptr, i32 }
          cleanup
  %1227 = extractvalue { ptr, i32 } %1226, 0
  store ptr %1227, ptr %5, align 8
  %1228 = extractvalue { ptr, i32 } %1226, 1
  store i32 %1228, ptr %6, align 4
  br label %1395

1229:                                             ; preds = %1180, %1178, %1177, %1175, %1174, %1171, %1169
  %1230 = landingpad { ptr, i32 }
          cleanup
  %1231 = extractvalue { ptr, i32 } %1230, 0
  store ptr %1231, ptr %5, align 8
  %1232 = extractvalue { ptr, i32 } %1230, 1
  store i32 %1232, ptr %6, align 4
  br label %1394

1233:                                             ; preds = %1184, %1181
  %1234 = landingpad { ptr, i32 }
          cleanup
  %1235 = extractvalue { ptr, i32 } %1234, 0
  store ptr %1235, ptr %5, align 8
  %1236 = extractvalue { ptr, i32 } %1234, 1
  store i32 %1236, ptr %6, align 4
  br label %1393

1237:                                             ; preds = %1195, %1193, %1191, %1190, %1187, %1185
  %1238 = landingpad { ptr, i32 }
          cleanup
  %1239 = extractvalue { ptr, i32 } %1238, 0
  store ptr %1239, ptr %5, align 8
  %1240 = extractvalue { ptr, i32 } %1238, 1
  store i32 %1240, ptr %6, align 4
  br label %1392

1241:                                             ; preds = %1201, %1196
  %1242 = landingpad { ptr, i32 }
          cleanup
  %1243 = extractvalue { ptr, i32 } %1242, 0
  store ptr %1243, ptr %5, align 8
  %1244 = extractvalue { ptr, i32 } %1242, 1
  store i32 %1244, ptr %6, align 4
  br label %1391

1245:                                             ; preds = %1198
  %1246 = landingpad { ptr, i32 }
          cleanup
  %1247 = extractvalue { ptr, i32 } %1246, 0
  store ptr %1247, ptr %5, align 8
  %1248 = extractvalue { ptr, i32 } %1246, 1
  store i32 %1248, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %1197, i64 noundef 24) #14
  br label %1391

1249:                                             ; preds = %1206, %1204, %1202
  %1250 = landingpad { ptr, i32 }
          cleanup
  %1251 = extractvalue { ptr, i32 } %1250, 0
  store ptr %1251, ptr %5, align 8
  %1252 = extractvalue { ptr, i32 } %1250, 1
  store i32 %1252, ptr %6, align 4
  br label %1390

1253:                                             ; preds = %1264, %1259, %1257, %1223, %1218, %1216, %1211, %1209, %1207
  %1254 = landingpad { ptr, i32 }
          cleanup
  %1255 = extractvalue { ptr, i32 } %1254, 0
  store ptr %1255, ptr %5, align 8
  %1256 = extractvalue { ptr, i32 } %1254, 1
  store i32 %1256, ptr %6, align 4
  br label %1389

1257:                                             ; preds = %1212
  %1258 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %1259 unwind label %1253

1259:                                             ; preds = %1257
  %1260 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 14
  %1261 = load double, ptr %1260, align 8, !tbaa !36
  %1262 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 30
  %1263 = invoke noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1262)
          to label %1264 unwind label %1253

1264:                                             ; preds = %1259
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix9AddMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(97) %1258, double noundef %1261, ptr noundef nonnull align 8 dereferenceable(97) %1263, double noundef 1.000000e+00)
          to label %1265 unwind label %1253

1265:                                             ; preds = %1264
  br label %1266

1266:                                             ; preds = %1265, %1224
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #11
  %1267 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 22
  %1268 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1267)
          to label %1269 unwind label %1284

1269:                                             ; preds = %1266
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %76, ptr noundef nonnull align 8 dereferenceable(89) %1268)
          to label %1270 unwind label %1284

1270:                                             ; preds = %1269
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #11
  %1271 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %1272 unwind label %1288

1272:                                             ; preds = %1270
  %1273 = invoke noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %1274 unwind label %1288

1274:                                             ; preds = %1272
  %1275 = invoke noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89) %1271, ptr noundef nonnull align 8 dereferenceable(97) %1273)
          to label %1276 unwind label %1288

1276:                                             ; preds = %1274
  %1277 = zext i1 %1275 to i8
  store i8 %1277, ptr %77, align 1, !tbaa !45
  %1278 = load i8, ptr %77, align 1, !tbaa !45, !range !31, !noundef !32
  %1279 = trunc i8 %1278 to i1
  br i1 %1279, label %1292, label %1280

1280:                                             ; preds = %1276
  %1281 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1282 unwind label %1288

1282:                                             ; preds = %1280
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %1281, i32 noundef 2, i32 noundef 9, ptr noundef @.str.40)
          to label %1283 unwind label %1288

1283:                                             ; preds = %1282
  store i8 1, ptr %58, align 1, !tbaa !45
  store i32 2, ptr %41, align 4
  br label %1386

1284:                                             ; preds = %1269, %1266
  %1285 = landingpad { ptr, i32 }
          cleanup
  %1286 = extractvalue { ptr, i32 } %1285, 0
  store ptr %1286, ptr %5, align 8
  %1287 = extractvalue { ptr, i32 } %1285, 1
  store i32 %1287, ptr %6, align 4
  br label %1388

1288:                                             ; preds = %1282, %1280, %1274, %1272, %1270
  %1289 = landingpad { ptr, i32 }
          cleanup
  %1290 = extractvalue { ptr, i32 } %1289, 0
  store ptr %1290, ptr %5, align 8
  %1291 = extractvalue { ptr, i32 } %1289, 1
  store i32 %1291, ptr %6, align 4
  br label %1387

1292:                                             ; preds = %1276
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  %1293 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %1294 unwind label %1326

1294:                                             ; preds = %1292
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %78, ptr noundef nonnull align 8 dereferenceable(89) %1293)
          to label %1295 unwind label %1326

1295:                                             ; preds = %1294
  %1296 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %1297 unwind label %1330

1297:                                             ; preds = %1295
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(89) %1296, double noundef 1.000000e+00)
          to label %1298 unwind label %1330

1298:                                             ; preds = %1297
  %1299 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %1300 unwind label %1330

1300:                                             ; preds = %1298
  %1301 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %1302 unwind label %1330

1302:                                             ; preds = %1300
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix23CholeskyBackSolveMatrixEbdRS0_(ptr noundef nonnull align 8 dereferenceable(89) %1299, i1 noundef zeroext true, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(89) %1301)
          to label %1303 unwind label %1330

1303:                                             ; preds = %1302
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #11
  %1304 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 18
  %1305 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1304)
          to label %1306 unwind label %1334

1306:                                             ; preds = %1303
  invoke void @_ZNK10SimTKIpopt17MultiVectorMatrix24MakeNewMultiVectorMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.22") align 8 %79, ptr noundef nonnull align 8 dereferenceable(128) %1305)
          to label %1307 unwind label %1334

1307:                                             ; preds = %1306
  %1308 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 26
  %1309 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %1308, ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %1310 unwind label %1338

1310:                                             ; preds = %1307
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #11
  %1311 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %1312 = load i8, ptr %1311, align 8, !tbaa !9, !range !31, !noundef !32
  %1313 = trunc i8 %1312 to i1
  br i1 %1313, label %1343, label %1314

1314:                                             ; preds = %1310
  %1315 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 26
  %1316 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1315)
          to label %1317 unwind label %1330

1317:                                             ; preds = %1314
  %1318 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1319 = load double, ptr %1318, align 8, !tbaa !43
  %1320 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 18
  %1321 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1320)
          to label %1322 unwind label %1330

1322:                                             ; preds = %1317
  %1323 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %1324 unwind label %1330

1324:                                             ; preds = %1322
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %1316, double noundef %1319, ptr noundef nonnull align 8 dereferenceable(128) %1321, ptr noundef nonnull align 8 dereferenceable(69) %1323, double noundef 0.000000e+00)
          to label %1325 unwind label %1330

1325:                                             ; preds = %1324
  br label %1355

1326:                                             ; preds = %1294, %1292
  %1327 = landingpad { ptr, i32 }
          cleanup
  %1328 = extractvalue { ptr, i32 } %1327, 0
  store ptr %1328, ptr %5, align 8
  %1329 = extractvalue { ptr, i32 } %1327, 1
  store i32 %1329, ptr %6, align 4
  br label %1385

1330:                                             ; preds = %1353, %1351, %1346, %1343, %1324, %1322, %1317, %1314, %1302, %1300, %1298, %1297, %1295
  %1331 = landingpad { ptr, i32 }
          cleanup
  %1332 = extractvalue { ptr, i32 } %1331, 0
  store ptr %1332, ptr %5, align 8
  %1333 = extractvalue { ptr, i32 } %1331, 1
  store i32 %1333, ptr %6, align 4
  br label %1384

1334:                                             ; preds = %1306, %1303
  %1335 = landingpad { ptr, i32 }
          cleanup
  %1336 = extractvalue { ptr, i32 } %1335, 0
  store ptr %1336, ptr %5, align 8
  %1337 = extractvalue { ptr, i32 } %1335, 1
  store i32 %1337, ptr %6, align 4
  br label %1342

1338:                                             ; preds = %1307
  %1339 = landingpad { ptr, i32 }
          cleanup
  %1340 = extractvalue { ptr, i32 } %1339, 0
  store ptr %1340, ptr %5, align 8
  %1341 = extractvalue { ptr, i32 } %1339, 1
  store i32 %1341, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #11
  br label %1342

1342:                                             ; preds = %1338, %1334
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #11
  br label %1384

1343:                                             ; preds = %1310
  %1344 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 26
  %1345 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1344)
          to label %1346 unwind label %1330

1346:                                             ; preds = %1343
  %1347 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 14
  %1348 = load double, ptr %1347, align 8, !tbaa !36
  %1349 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 29
  %1350 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1349)
          to label %1351 unwind label %1330

1351:                                             ; preds = %1346
  %1352 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %1353 unwind label %1330

1353:                                             ; preds = %1351
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %1345, double noundef %1348, ptr noundef nonnull align 8 dereferenceable(128) %1350, ptr noundef nonnull align 8 dereferenceable(69) %1352, double noundef 0.000000e+00)
          to label %1354 unwind label %1330

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354, %1325
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #11
  %1356 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %1357 unwind label %1375

1357:                                             ; preds = %1355
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %80, ptr noundef nonnull align 8 dereferenceable(89) %1356)
          to label %1358 unwind label %1375

1358:                                             ; preds = %1357
  %1359 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %1360 unwind label %1379

1360:                                             ; preds = %1358
  %1361 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %1362 unwind label %1379

1362:                                             ; preds = %1360
  %1363 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %1364 unwind label %1379

1364:                                             ; preds = %1362
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix16AddMatrixProductEdRKS0_bS2_bd(ptr noundef nonnull align 8 dereferenceable(89) %1359, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(89) %1361, i1 noundef zeroext true, ptr noundef nonnull align 8 dereferenceable(89) %1363, i1 noundef zeroext false, double noundef 0.000000e+00)
          to label %1365 unwind label %1379

1365:                                             ; preds = %1364
  %1366 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 26
  %1367 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1366)
          to label %1368 unwind label %1379

1368:                                             ; preds = %1365
  %1369 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 25
  %1370 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1369)
          to label %1371 unwind label %1379

1371:                                             ; preds = %1368
  %1372 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %1373 unwind label %1379

1373:                                             ; preds = %1371
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %1367, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %1370, ptr noundef nonnull align 8 dereferenceable(69) %1372, double noundef 1.000000e+00)
          to label %1374 unwind label %1379

1374:                                             ; preds = %1373
  store i32 2, ptr %41, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  br label %1386

1375:                                             ; preds = %1357, %1355
  %1376 = landingpad { ptr, i32 }
          cleanup
  %1377 = extractvalue { ptr, i32 } %1376, 0
  store ptr %1377, ptr %5, align 8
  %1378 = extractvalue { ptr, i32 } %1376, 1
  store i32 %1378, ptr %6, align 4
  br label %1383

1379:                                             ; preds = %1373, %1371, %1368, %1365, %1364, %1362, %1360, %1358
  %1380 = landingpad { ptr, i32 }
          cleanup
  %1381 = extractvalue { ptr, i32 } %1380, 0
  store ptr %1381, ptr %5, align 8
  %1382 = extractvalue { ptr, i32 } %1380, 1
  store i32 %1382, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #11
  br label %1383

1383:                                             ; preds = %1379, %1375
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #11
  br label %1384

1384:                                             ; preds = %1383, %1342, %1330
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #11
  br label %1385

1385:                                             ; preds = %1384, %1326
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  br label %1387

1386:                                             ; preds = %1374, %1283
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  br label %1398

1387:                                             ; preds = %1385, %1288
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #11
  br label %1388

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

1389:                                             ; preds = %1388, %1253
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #11
  br label %1390

1390:                                             ; preds = %1389, %1249
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #11
  br label %1391

1391:                                             ; preds = %1390, %1245, %1241
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #11
  br label %1392

1392:                                             ; preds = %1391, %1237
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #11
  br label %1393

1393:                                             ; preds = %1392, %1233
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #11
  br label %1394

1394:                                             ; preds = %1393, %1229
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #11
  br label %1395

1395:                                             ; preds = %1394, %1225
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  br label %1396

1396:                                             ; preds = %1395, %1156
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #11
  br label %1397

1397:                                             ; preds = %1396, %1152
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  br label %1399

1398:                                             ; preds = %1386, %1132
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  br label %1400

1399:                                             ; preds = %1397, %1126, %1054
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  br label %1401

1400:                                             ; preds = %1398, %1037
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #11
  br label %1845

1401:                                             ; preds = %1399, %1040, %1019, %1015
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #11
  br label %1909

1402:                                             ; preds = %965
  %1403 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1404 unwind label %949

1404:                                             ; preds = %1402
  %1405 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData11info_regu_xEv(ptr noundef nonnull align 8 dereferenceable(864) %1403)
          to label %1406 unwind label %949

1406:                                             ; preds = %1404
  %1407 = fcmp ogt double %1405, 0.000000e+00
  br i1 %1407, label %1408, label %1426

1408:                                             ; preds = %1406
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater25RestoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %108)
          to label %1409 unwind label %949

1409:                                             ; preds = %1408
  %1410 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1411 unwind label %949

1411:                                             ; preds = %1409
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %1410, i32 noundef 5, i32 noundef 9, ptr noundef @.str.41)
          to label %1412 unwind label %949

1412:                                             ; preds = %1411
  %1413 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1414 unwind label %949

1414:                                             ; preds = %1412
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %1415 unwind label %1417

1415:                                             ; preds = %1414
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %1413, ptr noundef nonnull align 8 dereferenceable(32) %81)
          to label %1416 unwind label %1421

1416:                                             ; preds = %1415
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #11
  store i8 1, ptr %59, align 1, !tbaa !45
  br label %1426

1417:                                             ; preds = %1414
  %1418 = landingpad { ptr, i32 }
          cleanup
  %1419 = extractvalue { ptr, i32 } %1418, 0
  store ptr %1419, ptr %5, align 8
  %1420 = extractvalue { ptr, i32 } %1418, 1
  store i32 %1420, ptr %6, align 4
  br label %1425

1421:                                             ; preds = %1415
  %1422 = landingpad { ptr, i32 }
          cleanup
  %1423 = extractvalue { ptr, i32 } %1422, 0
  store ptr %1423, ptr %5, align 8
  %1424 = extractvalue { ptr, i32 } %1422, 1
  store i32 %1424, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  br label %1425

1425:                                             ; preds = %1421, %1417
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #11
  br label %1909

1426:                                             ; preds = %1416, %1406
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater23StoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %108)
          to label %1427 unwind label %949

1427:                                             ; preds = %1426
  %1428 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %1429 unwind label %949

1429:                                             ; preds = %1427
  %1430 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %1431 unwind label %949

1431:                                             ; preds = %1429
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %1432 unwind label %949

1432:                                             ; preds = %1431
  %1433 = invoke noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater18UpdateInternalDataERKNS_6VectorES3_NS_8SmartPtrIS1_EE(ptr noundef nonnull align 8 dereferenceable(424) %108, ptr noundef nonnull align 8 dereferenceable(205) %1428, ptr noundef nonnull align 8 dereferenceable(205) %1430, ptr noundef %83)
          to label %1434 unwind label %1446

1434:                                             ; preds = %1432
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #11
  %1435 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %1436 = load i8, ptr %1435, align 8, !tbaa !9, !range !31, !noundef !32
  %1437 = trunc i8 %1436 to i1
  br i1 %1437, label %1495, label %1438

1438:                                             ; preds = %1434
  %1439 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 17
  %1440 = load i32, ptr %1439, align 8, !tbaa !41
  %1441 = icmp eq i32 %1440, 1
  br i1 %1441, label %1442, label %1450

1442:                                             ; preds = %1438
  %1443 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 5
  %1444 = load double, ptr %1443, align 8, !tbaa !44
  %1445 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double %1444, ptr %1445, align 8, !tbaa !43
  br label %1489

1446:                                             ; preds = %1432
  %1447 = landingpad { ptr, i32 }
          cleanup
  %1448 = extractvalue { ptr, i32 } %1447, 0
  store ptr %1448, ptr %5, align 8
  %1449 = extractvalue { ptr, i32 } %1447, 1
  store i32 %1449, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #11
  br label %1909

1450:                                             ; preds = %1438
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #11
  %1451 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %1452 unwind label %1462

1452:                                             ; preds = %1450
  %1453 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %1454 unwind label %1462

1454:                                             ; preds = %1452
  %1455 = invoke noundef double @_ZNK10SimTKIpopt6Vector3DotERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %1451, ptr noundef nonnull align 8 dereferenceable(205) %1453)
          to label %1456 unwind label %1462

1456:                                             ; preds = %1454
  %1457 = call double @llvm.fabs.f64(double %1455)
  %1458 = invoke noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 1.000000e-08, double noundef %1457)
          to label %1459 unwind label %1462

1459:                                             ; preds = %1456
  store double %1458, ptr %84, align 8, !tbaa !46
  %1460 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 4
  %1461 = load i32, ptr %1460, align 8, !tbaa !48
  switch i32 %1461, label %1488 [
    i32 0, label %1466
    i32 1, label %1475
    i32 2, label %1484
  ]

1462:                                             ; preds = %1477, %1475, %1469, %1466, %1456, %1454, %1452, %1450
  %1463 = landingpad { ptr, i32 }
          cleanup
  %1464 = extractvalue { ptr, i32 } %1463, 0
  store ptr %1464, ptr %5, align 8
  %1465 = extractvalue { ptr, i32 } %1463, 1
  store i32 %1465, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  br label %1909

1466:                                             ; preds = %1459
  %1467 = load double, ptr %84, align 8, !tbaa !46
  %1468 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %1469 unwind label %1462

1469:                                             ; preds = %1466
  %1470 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %1468)
          to label %1471 unwind label %1462

1471:                                             ; preds = %1469
  %1472 = call double @pow(double noundef %1470, double noundef 2.000000e+00) #11
  %1473 = fdiv double %1467, %1472
  %1474 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double %1473, ptr %1474, align 8, !tbaa !43
  br label %1488

1475:                                             ; preds = %1459
  %1476 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %1477 unwind label %1462

1477:                                             ; preds = %1475
  %1478 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %1476)
          to label %1479 unwind label %1462

1479:                                             ; preds = %1477
  %1480 = call double @pow(double noundef %1478, double noundef 2.000000e+00) #11
  %1481 = load double, ptr %84, align 8, !tbaa !46
  %1482 = fdiv double %1480, %1481
  %1483 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double %1482, ptr %1483, align 8, !tbaa !43
  br label %1488

1484:                                             ; preds = %1459
  %1485 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 5
  %1486 = load double, ptr %1485, align 8, !tbaa !44
  %1487 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  store double %1486, ptr %1487, align 8, !tbaa !43
  br label %1488

1488:                                             ; preds = %1484, %1479, %1471, %1459
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  br label %1489

1489:                                             ; preds = %1488, %1442
  %1490 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1491 unwind label %949

1491:                                             ; preds = %1489
  %1492 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1493 = load double, ptr %1492, align 8, !tbaa !43
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %1490, i32 noundef 5, i32 noundef 9, ptr noundef @.str.37, double noundef %1493)
          to label %1494 unwind label %949

1494:                                             ; preds = %1491
  br label %1495

1495:                                             ; preds = %1494, %1434
  %1496 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 2
  %1497 = load i32, ptr %1496, align 8, !tbaa !51
  %1498 = icmp eq i32 %1497, 0
  br i1 %1498, label %1499, label %1500

1499:                                             ; preds = %1495
  br label %1845

1500:                                             ; preds = %1495
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %1501 unwind label %1521

1501:                                             ; preds = %1500
  %1502 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %1503 = load i8, ptr %1502, align 8, !tbaa !9, !range !31, !noundef !32
  %1504 = trunc i8 %1503 to i1
  br i1 %1504, label %1538, label %1505

1505:                                             ; preds = %1501
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #11
  %1506 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 27
  %1507 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1506)
          to label %1508 unwind label %1525

1508:                                             ; preds = %1505
  invoke void @_ZNK10SimTKIpopt14DenseSymMatrix21MakeNewDenseSymMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.26") align 8 %86, ptr noundef nonnull align 8 dereferenceable(97) %1507)
          to label %1509 unwind label %1525

1509:                                             ; preds = %1508
  %1510 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(8) %86)
          to label %1511 unwind label %1529

1511:                                             ; preds = %1509
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  %1512 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %1513 unwind label %1534

1513:                                             ; preds = %1511
  %1514 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1515 = load double, ptr %1514, align 8, !tbaa !43
  %1516 = fneg double %1515
  %1517 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 27
  %1518 = invoke noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1517)
          to label %1519 unwind label %1534

1519:                                             ; preds = %1513
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix9AddMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(97) %1512, double noundef %1516, ptr noundef nonnull align 8 dereferenceable(97) %1518, double noundef 0.000000e+00)
          to label %1520 unwind label %1534

1520:                                             ; preds = %1519
  br label %1563

1521:                                             ; preds = %1500
  %1522 = landingpad { ptr, i32 }
          cleanup
  %1523 = extractvalue { ptr, i32 } %1522, 0
  store ptr %1523, ptr %5, align 8
  %1524 = extractvalue { ptr, i32 } %1522, 1
  store i32 %1524, ptr %6, align 4
  br label %1844

1525:                                             ; preds = %1508, %1505
  %1526 = landingpad { ptr, i32 }
          cleanup
  %1527 = extractvalue { ptr, i32 } %1526, 0
  store ptr %1527, ptr %5, align 8
  %1528 = extractvalue { ptr, i32 } %1526, 1
  store i32 %1528, ptr %6, align 4
  br label %1533

1529:                                             ; preds = %1509
  %1530 = landingpad { ptr, i32 }
          cleanup
  %1531 = extractvalue { ptr, i32 } %1530, 0
  store ptr %1531, ptr %5, align 8
  %1532 = extractvalue { ptr, i32 } %1530, 1
  store i32 %1532, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #11
  br label %1533

1533:                                             ; preds = %1529, %1525
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  br label %1843

1534:                                             ; preds = %1571, %1568, %1565, %1563, %1552, %1546, %1544, %1519, %1513, %1511
  %1535 = landingpad { ptr, i32 }
          cleanup
  %1536 = extractvalue { ptr, i32 } %1535, 0
  store ptr %1536, ptr %5, align 8
  %1537 = extractvalue { ptr, i32 } %1535, 1
  store i32 %1537, ptr %6, align 4
  br label %1843

1538:                                             ; preds = %1501
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #11
  %1539 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 30
  %1540 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1539)
          to label %1541 unwind label %1554

1541:                                             ; preds = %1538
  invoke void @_ZNK10SimTKIpopt14DenseSymMatrix21MakeNewDenseSymMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.26") align 8 %87, ptr noundef nonnull align 8 dereferenceable(97) %1540)
          to label %1542 unwind label %1554

1542:                                             ; preds = %1541
  %1543 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %1544 unwind label %1558

1544:                                             ; preds = %1542
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #11
  %1545 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %1546 unwind label %1534

1546:                                             ; preds = %1544
  %1547 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 14
  %1548 = load double, ptr %1547, align 8, !tbaa !36
  %1549 = fneg double %1548
  %1550 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 30
  %1551 = invoke noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1550)
          to label %1552 unwind label %1534

1552:                                             ; preds = %1546
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix9AddMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(97) %1545, double noundef %1549, ptr noundef nonnull align 8 dereferenceable(97) %1551, double noundef 0.000000e+00)
          to label %1553 unwind label %1534

1553:                                             ; preds = %1552
  br label %1563

1554:                                             ; preds = %1541, %1538
  %1555 = landingpad { ptr, i32 }
          cleanup
  %1556 = extractvalue { ptr, i32 } %1555, 0
  store ptr %1556, ptr %5, align 8
  %1557 = extractvalue { ptr, i32 } %1555, 1
  store i32 %1557, ptr %6, align 4
  br label %1562

1558:                                             ; preds = %1542
  %1559 = landingpad { ptr, i32 }
          cleanup
  %1560 = extractvalue { ptr, i32 } %1559, 0
  store ptr %1560, ptr %5, align 8
  %1561 = extractvalue { ptr, i32 } %1559, 1
  store i32 %1561, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #11
  br label %1562

1562:                                             ; preds = %1558, %1554
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #11
  br label %1843

1563:                                             ; preds = %1553, %1520
  %1564 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %1565 unwind label %1534

1565:                                             ; preds = %1563
  %1566 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 21
  %1567 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1566)
          to label %1568 unwind label %1534

1568:                                             ; preds = %1565
  %1569 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 22
  %1570 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1569)
          to label %1571 unwind label %1534

1571:                                             ; preds = %1568
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix18SpecialAddForLMSR1ERKNS_11DenseVectorERKNS_14DenseGenMatrixE(ptr noundef nonnull align 8 dereferenceable(97) %1564, ptr noundef nonnull align 8 dereferenceable(240) %1567, ptr noundef nonnull align 8 dereferenceable(89) %1570)
          to label %1572 unwind label %1534

1572:                                             ; preds = %1571
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #11
  %1573 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 22
  %1574 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1573)
          to label %1575 unwind label %1602

1575:                                             ; preds = %1572
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %88, ptr noundef nonnull align 8 dereferenceable(89) %1574)
          to label %1576 unwind label %1602

1576:                                             ; preds = %1575
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #11
  %1577 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 21
  %1578 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1577)
          to label %1579 unwind label %1606

1579:                                             ; preds = %1576
  invoke void @_ZNK10SimTKIpopt11DenseVector18MakeNewDenseVectorEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.23") align 8 %89, ptr noundef nonnull align 8 dereferenceable(240) %1578)
          to label %1580 unwind label %1606

1580:                                             ; preds = %1579
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #11
  %1581 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %1582 unwind label %1610

1582:                                             ; preds = %1580
  %1583 = invoke noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %1584 unwind label %1610

1584:                                             ; preds = %1582
  %1585 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %89)
          to label %1586 unwind label %1610

1586:                                             ; preds = %1584
  %1587 = invoke noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix19ComputeEigenVectorsERKNS_14DenseSymMatrixERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89) %1581, ptr noundef nonnull align 8 dereferenceable(97) %1583, ptr noundef nonnull align 8 dereferenceable(240) %1585)
          to label %1588 unwind label %1610

1588:                                             ; preds = %1586
  %1589 = zext i1 %1587 to i8
  store i8 %1589, ptr %90, align 1, !tbaa !45
  %1590 = load i8, ptr %90, align 1, !tbaa !45, !range !31, !noundef !32
  %1591 = trunc i8 %1590 to i1
  br i1 %1591, label %1641, label %1592

1592:                                             ; preds = %1588
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %1593 unwind label %1614

1593:                                             ; preds = %1592
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #11
  %1594 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.26)
          to label %1595 unwind label %1618

1595:                                             ; preds = %1593
  %1596 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.44)
          to label %1597 unwind label %1618

1597:                                             ; preds = %1595
  store i1 true, ptr %96, align 1
  %1598 = call ptr @__cxa_allocate_exception(i64 112) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %1599 unwind label %1622

1599:                                             ; preds = %1597
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %1600 unwind label %1626

1600:                                             ; preds = %1599
  invoke void @_ZN10SimTKIpopt14INTERNAL_ABORTC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %1598, ptr noundef %93, ptr noundef %94, i32 noundef 551)
          to label %1601 unwind label %1630

1601:                                             ; preds = %1600
  store i1 false, ptr %96, align 1
  invoke void @__cxa_throw(ptr %1598, ptr @_ZTIN10SimTKIpopt14INTERNAL_ABORTE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #12
          to label %1931 unwind label %1630

1602:                                             ; preds = %1575, %1572
  %1603 = landingpad { ptr, i32 }
          cleanup
  %1604 = extractvalue { ptr, i32 } %1603, 0
  store ptr %1604, ptr %5, align 8
  %1605 = extractvalue { ptr, i32 } %1603, 1
  store i32 %1605, ptr %6, align 4
  br label %1842

1606:                                             ; preds = %1579, %1576
  %1607 = landingpad { ptr, i32 }
          cleanup
  %1608 = extractvalue { ptr, i32 } %1607, 0
  store ptr %1608, ptr %5, align 8
  %1609 = extractvalue { ptr, i32 } %1607, 1
  store i32 %1609, ptr %6, align 4
  br label %1841

1610:                                             ; preds = %1586, %1584, %1582, %1580
  %1611 = landingpad { ptr, i32 }
          cleanup
  %1612 = extractvalue { ptr, i32 } %1611, 0
  store ptr %1612, ptr %5, align 8
  %1613 = extractvalue { ptr, i32 } %1611, 1
  store i32 %1613, ptr %6, align 4
  br label %1840

1614:                                             ; preds = %1592
  %1615 = landingpad { ptr, i32 }
          cleanup
  %1616 = extractvalue { ptr, i32 } %1615, 0
  store ptr %1616, ptr %5, align 8
  %1617 = extractvalue { ptr, i32 } %1615, 1
  store i32 %1617, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #11
  br label %1640

1618:                                             ; preds = %1595, %1593
  %1619 = landingpad { ptr, i32 }
          cleanup
  %1620 = extractvalue { ptr, i32 } %1619, 0
  store ptr %1620, ptr %5, align 8
  %1621 = extractvalue { ptr, i32 } %1619, 1
  store i32 %1621, ptr %6, align 4
  br label %1639

1622:                                             ; preds = %1597
  %1623 = landingpad { ptr, i32 }
          cleanup
  %1624 = extractvalue { ptr, i32 } %1623, 0
  store ptr %1624, ptr %5, align 8
  %1625 = extractvalue { ptr, i32 } %1623, 1
  store i32 %1625, ptr %6, align 4
  br label %1635

1626:                                             ; preds = %1599
  %1627 = landingpad { ptr, i32 }
          cleanup
  %1628 = extractvalue { ptr, i32 } %1627, 0
  store ptr %1628, ptr %5, align 8
  %1629 = extractvalue { ptr, i32 } %1627, 1
  store i32 %1629, ptr %6, align 4
  br label %1634

1630:                                             ; preds = %1601, %1600
  %1631 = landingpad { ptr, i32 }
          cleanup
  %1632 = extractvalue { ptr, i32 } %1631, 0
  store ptr %1632, ptr %5, align 8
  %1633 = extractvalue { ptr, i32 } %1631, 1
  store i32 %1633, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #11
  br label %1634

1634:                                             ; preds = %1630, %1626
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #11
  br label %1635

1635:                                             ; preds = %1634, %1622
  %1636 = load i1, ptr %96, align 1
  br i1 %1636, label %1637, label %1638

1637:                                             ; preds = %1635
  call void @__cxa_free_exception(ptr %1598) #11
  br label %1638

1638:                                             ; preds = %1637, %1635
  br label %1639

1639:                                             ; preds = %1638, %1618
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #11
  br label %1640

1640:                                             ; preds = %1639, %1614
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #11
  br label %1840

1641:                                             ; preds = %1588
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1642 unwind label %1655

1642:                                             ; preds = %1641
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %1643 unwind label %1659

1643:                                             ; preds = %1642
  %1644 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %1645 unwind label %1663

1645:                                             ; preds = %1643
  %1646 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %89)
          to label %1647 unwind label %1663

1647:                                             ; preds = %1645
  %1648 = invoke noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater16SplitEigenvaluesERNS_14DenseGenMatrixERKNS_11DenseVectorERNS_8SmartPtrIS1_EES8_(ptr noundef nonnull align 8 dereferenceable(424) %108, ptr noundef nonnull align 8 dereferenceable(89) %1644, ptr noundef nonnull align 8 dereferenceable(240) %1646, ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %1649 unwind label %1663

1649:                                             ; preds = %1647
  %1650 = zext i1 %1648 to i8
  store i8 %1650, ptr %58, align 1, !tbaa !45
  %1651 = load i8, ptr %58, align 1, !tbaa !45, !range !31, !noundef !32
  %1652 = trunc i8 %1651 to i1
  br i1 %1652, label %1653, label %1667

1653:                                             ; preds = %1649
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater25RestoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %108)
          to label %1654 unwind label %1663

1654:                                             ; preds = %1653
  store i32 2, ptr %41, align 4
  br label %1836

1655:                                             ; preds = %1641
  %1656 = landingpad { ptr, i32 }
          cleanup
  %1657 = extractvalue { ptr, i32 } %1656, 0
  store ptr %1657, ptr %5, align 8
  %1658 = extractvalue { ptr, i32 } %1656, 1
  store i32 %1658, ptr %6, align 4
  br label %1839

1659:                                             ; preds = %1642
  %1660 = landingpad { ptr, i32 }
          cleanup
  %1661 = extractvalue { ptr, i32 } %1660, 0
  store ptr %1661, ptr %5, align 8
  %1662 = extractvalue { ptr, i32 } %1660, 1
  store i32 %1662, ptr %6, align 4
  br label %1838

1663:                                             ; preds = %1653, %1647, %1645, %1643
  %1664 = landingpad { ptr, i32 }
          cleanup
  %1665 = extractvalue { ptr, i32 } %1664, 0
  store ptr %1665, ptr %5, align 8
  %1666 = extractvalue { ptr, i32 } %1664, 1
  store i32 %1666, ptr %6, align 4
  br label %1837

1667:                                             ; preds = %1649
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #11
  %1668 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 19
  %1669 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1668)
          to label %1670 unwind label %1691

1670:                                             ; preds = %1667
  invoke void @_ZNK10SimTKIpopt17MultiVectorMatrix24MakeNewMultiVectorMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.22") align 8 %99, ptr noundef nonnull align 8 dereferenceable(128) %1669)
          to label %1671 unwind label %1691

1671:                                             ; preds = %1670
  %1672 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %1673 unwind label %1695

1673:                                             ; preds = %1671
  %1674 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 19
  %1675 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1674)
          to label %1676 unwind label %1695

1676:                                             ; preds = %1673
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix23AddOneMultiVectorMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(128) %1672, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %1675, double noundef 0.000000e+00)
          to label %1677 unwind label %1695

1677:                                             ; preds = %1676
  %1678 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %1679 = load i8, ptr %1678, align 8, !tbaa !9, !range !31, !noundef !32
  %1680 = trunc i8 %1679 to i1
  br i1 %1680, label %1699, label %1681

1681:                                             ; preds = %1677
  %1682 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %1683 unwind label %1695

1683:                                             ; preds = %1681
  %1684 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 24
  %1685 = load double, ptr %1684, align 8, !tbaa !43
  %1686 = fneg double %1685
  %1687 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 18
  %1688 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1687)
          to label %1689 unwind label %1695

1689:                                             ; preds = %1683
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix23AddOneMultiVectorMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(128) %1682, double noundef %1686, ptr noundef nonnull align 8 dereferenceable(128) %1688, double noundef 1.000000e+00)
          to label %1690 unwind label %1695

1690:                                             ; preds = %1689
  br label %1709

1691:                                             ; preds = %1670, %1667
  %1692 = landingpad { ptr, i32 }
          cleanup
  %1693 = extractvalue { ptr, i32 } %1692, 0
  store ptr %1693, ptr %5, align 8
  %1694 = extractvalue { ptr, i32 } %1692, 1
  store i32 %1694, ptr %6, align 4
  br label %1835

1695:                                             ; preds = %1829, %1771, %1767, %1709, %1707, %1701, %1699, %1689, %1683, %1681, %1676, %1673, %1671
  %1696 = landingpad { ptr, i32 }
          cleanup
  %1697 = extractvalue { ptr, i32 } %1696, 0
  store ptr %1697, ptr %5, align 8
  %1698 = extractvalue { ptr, i32 } %1696, 1
  store i32 %1698, ptr %6, align 4
  br label %1834

1699:                                             ; preds = %1677
  %1700 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %1701 unwind label %1695

1701:                                             ; preds = %1699
  %1702 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 14
  %1703 = load double, ptr %1702, align 8, !tbaa !36
  %1704 = fneg double %1703
  %1705 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 29
  %1706 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1705)
          to label %1707 unwind label %1695

1707:                                             ; preds = %1701
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix23AddOneMultiVectorMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(128) %1700, double noundef %1704, ptr noundef nonnull align 8 dereferenceable(128) %1706, double noundef 1.000000e+00)
          to label %1708 unwind label %1695

1708:                                             ; preds = %1707
  br label %1709

1709:                                             ; preds = %1708, %1690
  %1710 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_14DenseGenMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1711 unwind label %1695

1711:                                             ; preds = %1709
  br i1 %1710, label %1712, label %1767

1712:                                             ; preds = %1711
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #11
  %1713 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #13
          to label %1714 unwind label %1741

1714:                                             ; preds = %1712
  store i1 true, ptr %102, align 1
  %1715 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1716 unwind label %1745

1716:                                             ; preds = %1714
  %1717 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %1715)
          to label %1718 unwind label %1745

1718:                                             ; preds = %1716
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #11
  %1719 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %1720 unwind label %1749

1720:                                             ; preds = %1718
  invoke void @_ZNK10SimTKIpopt6Vector10OwnerSpaceEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr") align 8 %101, ptr noundef nonnull align 8 dereferenceable(205) %1719)
          to label %1721 unwind label %1749

1721:                                             ; preds = %1720
  %1722 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %1723 unwind label %1753

1723:                                             ; preds = %1721
  invoke void @_ZN10SimTKIpopt22MultiVectorMatrixSpaceC1EiRKNS_11VectorSpaceE(ptr noundef nonnull align 8 dereferenceable(32) %1713, i32 noundef %1717, ptr noundef nonnull align 8 dereferenceable(16) %1722)
          to label %1724 unwind label %1753

1724:                                             ; preds = %1723
  store i1 false, ptr %102, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef %1713)
          to label %1725 unwind label %1753

1725:                                             ; preds = %1724
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #11
  %1726 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %100)
          to label %1727 unwind label %1762

1727:                                             ; preds = %1725
  %1728 = invoke noundef ptr @_ZNK10SimTKIpopt22MultiVectorMatrixSpace24MakeNewMultiVectorMatrixEv(ptr noundef nonnull align 8 dereferenceable(32) %1726)
          to label %1729 unwind label %1762

1729:                                             ; preds = %1727
  %1730 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 26
  %1731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %1730, ptr noundef %1728)
          to label %1732 unwind label %1762

1732:                                             ; preds = %1729
  %1733 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 26
  %1734 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1733)
          to label %1735 unwind label %1762

1735:                                             ; preds = %1732
  %1736 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %1737 unwind label %1762

1737:                                             ; preds = %1735
  %1738 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1739 unwind label %1762

1739:                                             ; preds = %1737
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %1734, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %1736, ptr noundef nonnull align 8 dereferenceable(69) %1738, double noundef 0.000000e+00)
          to label %1740 unwind label %1762

1740:                                             ; preds = %1739
  call void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #11
  br label %1771

1741:                                             ; preds = %1712
  %1742 = landingpad { ptr, i32 }
          cleanup
  %1743 = extractvalue { ptr, i32 } %1742, 0
  store ptr %1743, ptr %5, align 8
  %1744 = extractvalue { ptr, i32 } %1742, 1
  store i32 %1744, ptr %6, align 4
  br label %1766

1745:                                             ; preds = %1716, %1714
  %1746 = landingpad { ptr, i32 }
          cleanup
  %1747 = extractvalue { ptr, i32 } %1746, 0
  store ptr %1747, ptr %5, align 8
  %1748 = extractvalue { ptr, i32 } %1746, 1
  store i32 %1748, ptr %6, align 4
  br label %1758

1749:                                             ; preds = %1720, %1718
  %1750 = landingpad { ptr, i32 }
          cleanup
  %1751 = extractvalue { ptr, i32 } %1750, 0
  store ptr %1751, ptr %5, align 8
  %1752 = extractvalue { ptr, i32 } %1750, 1
  store i32 %1752, ptr %6, align 4
  br label %1757

1753:                                             ; preds = %1724, %1723, %1721
  %1754 = landingpad { ptr, i32 }
          cleanup
  %1755 = extractvalue { ptr, i32 } %1754, 0
  store ptr %1755, ptr %5, align 8
  %1756 = extractvalue { ptr, i32 } %1754, 1
  store i32 %1756, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #11
  br label %1757

1757:                                             ; preds = %1753, %1749
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #11
  br label %1758

1758:                                             ; preds = %1757, %1745
  %1759 = load i1, ptr %102, align 1
  br i1 %1759, label %1760, label %1761

1760:                                             ; preds = %1758
  call void @_ZdlPvm(ptr noundef %1713, i64 noundef 32) #14
  br label %1761

1761:                                             ; preds = %1760, %1758
  br label %1766

1762:                                             ; preds = %1739, %1737, %1735, %1732, %1729, %1727, %1725
  %1763 = landingpad { ptr, i32 }
          cleanup
  %1764 = extractvalue { ptr, i32 } %1763, 0
  store ptr %1764, ptr %5, align 8
  %1765 = extractvalue { ptr, i32 } %1763, 1
  store i32 %1765, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #11
  br label %1766

1766:                                             ; preds = %1762, %1761, %1741
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #11
  br label %1834

1767:                                             ; preds = %1711
  %1768 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 26
  %1769 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %1768, ptr noundef null)
          to label %1770 unwind label %1695

1770:                                             ; preds = %1767
  br label %1771

1771:                                             ; preds = %1770, %1740
  %1772 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_14DenseGenMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %1773 unwind label %1695

1773:                                             ; preds = %1771
  br i1 %1772, label %1774, label %1829

1774:                                             ; preds = %1773
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #11
  %1775 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #13
          to label %1776 unwind label %1803

1776:                                             ; preds = %1774
  store i1 true, ptr %105, align 1
  %1777 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %1778 unwind label %1807

1778:                                             ; preds = %1776
  %1779 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %1777)
          to label %1780 unwind label %1807

1780:                                             ; preds = %1778
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #11
  %1781 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %1782 unwind label %1811

1782:                                             ; preds = %1780
  invoke void @_ZNK10SimTKIpopt6Vector10OwnerSpaceEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr") align 8 %104, ptr noundef nonnull align 8 dereferenceable(205) %1781)
          to label %1783 unwind label %1811

1783:                                             ; preds = %1782
  %1784 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %104)
          to label %1785 unwind label %1815

1785:                                             ; preds = %1783
  invoke void @_ZN10SimTKIpopt22MultiVectorMatrixSpaceC1EiRKNS_11VectorSpaceE(ptr noundef nonnull align 8 dereferenceable(32) %1775, i32 noundef %1779, ptr noundef nonnull align 8 dereferenceable(16) %1784)
          to label %1786 unwind label %1815

1786:                                             ; preds = %1785
  store i1 false, ptr %105, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef %1775)
          to label %1787 unwind label %1815

1787:                                             ; preds = %1786
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #11
  %1788 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %1789 unwind label %1824

1789:                                             ; preds = %1787
  %1790 = invoke noundef ptr @_ZNK10SimTKIpopt22MultiVectorMatrixSpace24MakeNewMultiVectorMatrixEv(ptr noundef nonnull align 8 dereferenceable(32) %1788)
          to label %1791 unwind label %1824

1791:                                             ; preds = %1789
  %1792 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 25
  %1793 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %1792, ptr noundef %1790)
          to label %1794 unwind label %1824

1794:                                             ; preds = %1791
  %1795 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 25
  %1796 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1795)
          to label %1797 unwind label %1824

1797:                                             ; preds = %1794
  %1798 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %1799 unwind label %1824

1799:                                             ; preds = %1797
  %1800 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %1801 unwind label %1824

1801:                                             ; preds = %1799
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %1796, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %1798, ptr noundef nonnull align 8 dereferenceable(69) %1800, double noundef 0.000000e+00)
          to label %1802 unwind label %1824

1802:                                             ; preds = %1801
  call void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  br label %1833

1803:                                             ; preds = %1774
  %1804 = landingpad { ptr, i32 }
          cleanup
  %1805 = extractvalue { ptr, i32 } %1804, 0
  store ptr %1805, ptr %5, align 8
  %1806 = extractvalue { ptr, i32 } %1804, 1
  store i32 %1806, ptr %6, align 4
  br label %1828

1807:                                             ; preds = %1778, %1776
  %1808 = landingpad { ptr, i32 }
          cleanup
  %1809 = extractvalue { ptr, i32 } %1808, 0
  store ptr %1809, ptr %5, align 8
  %1810 = extractvalue { ptr, i32 } %1808, 1
  store i32 %1810, ptr %6, align 4
  br label %1820

1811:                                             ; preds = %1782, %1780
  %1812 = landingpad { ptr, i32 }
          cleanup
  %1813 = extractvalue { ptr, i32 } %1812, 0
  store ptr %1813, ptr %5, align 8
  %1814 = extractvalue { ptr, i32 } %1812, 1
  store i32 %1814, ptr %6, align 4
  br label %1819

1815:                                             ; preds = %1786, %1785, %1783
  %1816 = landingpad { ptr, i32 }
          cleanup
  %1817 = extractvalue { ptr, i32 } %1816, 0
  store ptr %1817, ptr %5, align 8
  %1818 = extractvalue { ptr, i32 } %1816, 1
  store i32 %1818, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  br label %1819

1819:                                             ; preds = %1815, %1811
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #11
  br label %1820

1820:                                             ; preds = %1819, %1807
  %1821 = load i1, ptr %105, align 1
  br i1 %1821, label %1822, label %1823

1822:                                             ; preds = %1820
  call void @_ZdlPvm(ptr noundef %1775, i64 noundef 32) #14
  br label %1823

1823:                                             ; preds = %1822, %1820
  br label %1828

1824:                                             ; preds = %1801, %1799, %1797, %1794, %1791, %1789, %1787
  %1825 = landingpad { ptr, i32 }
          cleanup
  %1826 = extractvalue { ptr, i32 } %1825, 0
  store ptr %1826, ptr %5, align 8
  %1827 = extractvalue { ptr, i32 } %1825, 1
  store i32 %1827, ptr %6, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  br label %1828

1828:                                             ; preds = %1824, %1823, %1803
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  br label %1834

1829:                                             ; preds = %1773
  %1830 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 25
  %1831 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %1830, ptr noundef null)
          to label %1832 unwind label %1695

1832:                                             ; preds = %1829
  br label %1833

1833:                                             ; preds = %1832, %1802
  store i32 2, ptr %41, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  br label %1836

1834:                                             ; preds = %1828, %1766, %1695
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #11
  br label %1835

1835:                                             ; preds = %1834, %1691
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  br label %1837

1836:                                             ; preds = %1833, %1654
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  br label %1845

1837:                                             ; preds = %1835, %1663
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #11
  br label %1838

1838:                                             ; preds = %1837, %1659
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #11
  br label %1839

1839:                                             ; preds = %1838, %1655
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  br label %1840

1840:                                             ; preds = %1839, %1640, %1610
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #11
  br label %1841

1841:                                             ; preds = %1840, %1606
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #11
  br label %1842

1842:                                             ; preds = %1841, %1602
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #11
  br label %1843

1843:                                             ; preds = %1842, %1562, %1534, %1533
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #11
  br label %1844

1844:                                             ; preds = %1843, %1521
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  br label %1909

1845:                                             ; preds = %1836, %1499, %1400, %978, %965
  br label %1846

1846:                                             ; preds = %1845, %962
  %1847 = load i8, ptr %58, align 1, !tbaa !45, !range !31, !noundef !32
  %1848 = trunc i8 %1847 to i1
  br i1 %1848, label %1860, label %1849

1849:                                             ; preds = %1846
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater4SetWEv(ptr noundef nonnull align 8 dereferenceable(424) %108)
          to label %1850 unwind label %949

1850:                                             ; preds = %1849
  %1851 = load i8, ptr %59, align 1, !tbaa !45, !range !31, !noundef !32
  %1852 = trunc i8 %1851 to i1
  br i1 %1852, label %1853, label %1857

1853:                                             ; preds = %1850
  %1854 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 16
  %1855 = load i32, ptr %1854, align 4, !tbaa !39
  %1856 = add nsw i32 %1855, 1
  store i32 %1856, ptr %1854, align 4, !tbaa !39
  br label %1859

1857:                                             ; preds = %1850
  %1858 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 16
  store i32 0, ptr %1858, align 4, !tbaa !39
  br label %1859

1859:                                             ; preds = %1857, %1853
  br label %1877

1860:                                             ; preds = %1846
  %1861 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1862 unwind label %949

1862:                                             ; preds = %1860
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %1863 unwind label %1868

1863:                                             ; preds = %1862
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %1861, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %1864 unwind label %1872

1864:                                             ; preds = %1863
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #11
  %1865 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 16
  %1866 = load i32, ptr %1865, align 4, !tbaa !39
  %1867 = add nsw i32 %1866, 1
  store i32 %1867, ptr %1865, align 4, !tbaa !39
  br label %1877

1868:                                             ; preds = %1862
  %1869 = landingpad { ptr, i32 }
          cleanup
  %1870 = extractvalue { ptr, i32 } %1869, 0
  store ptr %1870, ptr %5, align 8
  %1871 = extractvalue { ptr, i32 } %1869, 1
  store i32 %1871, ptr %6, align 4
  br label %1876

1872:                                             ; preds = %1863
  %1873 = landingpad { ptr, i32 }
          cleanup
  %1874 = extractvalue { ptr, i32 } %1873, 0
  store ptr %1874, ptr %5, align 8
  %1875 = extractvalue { ptr, i32 } %1873, 1
  store i32 %1875, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  br label %1876

1876:                                             ; preds = %1872, %1868
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #11
  br label %1909

1877:                                             ; preds = %1864, %1859
  %1878 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %108)
          to label %1879 unwind label %949

1879:                                             ; preds = %1877
  %1880 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 16
  %1881 = load i32, ptr %1880, align 4, !tbaa !39
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %1878, i32 noundef 5, i32 noundef 9, ptr noundef @.str.46, i32 noundef %1881)
          to label %1882 unwind label %949

1882:                                             ; preds = %1879
  %1883 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 31
  %1884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %1883, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %1885 unwind label %949

1885:                                             ; preds = %1882
  %1886 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 32
  %1887 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %1886, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %1888 unwind label %949

1888:                                             ; preds = %1885
  %1889 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 33
  %1890 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %1889, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %1891 unwind label %949

1891:                                             ; preds = %1888
  %1892 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 34
  %1893 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %1892, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %1894 unwind label %949

1894:                                             ; preds = %1891
  %1895 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 9
  %1896 = load i8, ptr %1895, align 8, !tbaa !9, !range !31, !noundef !32
  %1897 = trunc i8 %1896 to i1
  br i1 %1897, label %1898, label %1905

1898:                                             ; preds = %1894
  %1899 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 14
  %1900 = load double, ptr %1899, align 8, !tbaa !36
  %1901 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 10
  store double %1900, ptr %1901, align 8, !tbaa !37
  %1902 = getelementptr inbounds %"class.SimTKIpopt::LimMemQuasiNewtonUpdater", ptr %108, i32 0, i32 11
  %1903 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %1902, ptr noundef null)
          to label %1904 unwind label %949

1904:                                             ; preds = %1898
  br label %1905

1905:                                             ; preds = %1904, %1894
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  store i32 0, ptr %41, align 4
  br label %1906

1906:                                             ; preds = %1905, %629
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  %1907 = load i32, ptr %41, align 4
  switch i32 %1907, label %1931 [
    i32 0, label %1908
    i32 1, label %1908
  ]

1908:                                             ; preds = %1906, %1906
  ret void

1909:                                             ; preds = %1876, %1844, %1462, %1446, %1425, %1401, %961, %949
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #11
  br label %1910

1910:                                             ; preds = %1909, %927
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #11
  br label %1911

1911:                                             ; preds = %1910, %923
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %1912

1912:                                             ; preds = %1911, %850
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #11
  br label %1913

1913:                                             ; preds = %1912, %846
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #11
  br label %1914

1914:                                             ; preds = %1913, %842
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %1915

1915:                                             ; preds = %1914, %841, %827, %775, %756, %722, %708, %691
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #11
  br label %1916

1916:                                             ; preds = %1915, %687
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  br label %1917

1917:                                             ; preds = %1916, %683
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #11
  br label %1918

1918:                                             ; preds = %1917, %679
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %1919

1919:                                             ; preds = %1918, %571, %551, %532, %523, %514, %505, %467
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #11
  br label %1920

1920:                                             ; preds = %1919, %366
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #11
  br label %1921

1921:                                             ; preds = %1920, %362
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #11
  br label %1922

1922:                                             ; preds = %1921, %358
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #11
  br label %1923

1923:                                             ; preds = %1922, %354
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #11
  br label %1924

1924:                                             ; preds = %1923, %333
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #11
  br label %1925

1925:                                             ; preds = %1924, %234
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  br label %1926

1926:                                             ; preds = %1925, %216, %154
  %1927 = load ptr, ptr %5, align 8
  %1928 = load i32, ptr %6, align 4
  %1929 = insertvalue { ptr, i32 } poison, ptr %1927, 0
  %1930 = insertvalue { ptr, i32 } %1929, i32 %1928, 1
  resume { ptr, i32 } %1930

1931:                                             ; preds = %1906, %1601, %187
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_27LowRankUpdateSymMatrixSpaceEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8)) #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 nounwind uwtable
declare dso_local noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_14SymMatrixSpaceEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8)) #2

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

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

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

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

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

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

declare ptr @__cxa_allocate_exception(i64)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__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 nounwind uwtable
declare dso_local noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(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 noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

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

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

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

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

; 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 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 @_ZN10SimTKIpopt8ConstPtrINS_6VectorEEENS_8SmartPtrIKT_EERKNS2_IS3_EE(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #3

declare noundef double @_ZNK10SimTKIpopt13RestoIpoptNLP3EtaEd(ptr noundef nonnull align 8 dereferenceable(312), double noundef) #5

; 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 nounwind uwtable
declare dso_local noundef double @_ZNK10SimTKIpopt9IpoptData7curr_muEv(ptr noundef nonnull align 8 dereferenceable(864)) #2 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

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

; 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: inlinehint mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.64") 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt6Vector19ElementWiseMultiplyERKS0_(ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) #6 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 nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE7epsilonEv() #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater17CheckSkippingBFGSERNS_6VectorES2_(ptr noundef nonnull align 8 dereferenceable(424), 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 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater23StoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater18UpdateInternalDataERKNS_6VectorES3_NS_8SmartPtrIS1_EE(ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef) #3 align 2

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

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

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

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

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

; Function Attrs: nounwind
declare double @pow(double noundef, double noundef) #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef, double noundef) #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN10SimTKIpopt3MinEdd(double noundef, double noundef) #8

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

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

; Function Attrs: nounwind
declare double @sqrt(double noundef) #7

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

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

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

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt14DenseGenMatrix4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(89)) #5

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

declare void @_ZN10SimTKIpopt14DenseGenMatrix12ScaleColumnsERKNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(240)) #5

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

declare void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef) unnamed_addr #5

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

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

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

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

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

declare void @_ZN10SimTKIpopt14DenseSymMatrix14HighRankUpdateEbdRKNS_14DenseGenMatrixEd(ptr noundef nonnull align 8 dereferenceable(97), i1 noundef zeroext, double noundef, ptr noundef nonnull align 8 dereferenceable(89), double noundef) #5

declare void @_ZN10SimTKIpopt14DenseSymMatrix9AddMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(97), double noundef, ptr noundef nonnull align 8 dereferenceable(97), double noundef) #5

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

declare noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(97)) #5

declare void @_ZN10SimTKIpopt14DenseGenMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(89), double noundef) #5

declare void @_ZNK10SimTKIpopt14DenseGenMatrix23CholeskyBackSolveMatrixEbdRS0_(ptr noundef nonnull align 8 dereferenceable(89), i1 noundef zeroext, double noundef, ptr noundef nonnull align 8 dereferenceable(89)) #5

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

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

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

declare void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128), double noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(69), double noundef) #5

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

declare void @_ZN10SimTKIpopt14DenseGenMatrix16AddMatrixProductEdRKS0_bS2_bd(ptr noundef nonnull align 8 dereferenceable(89), double noundef, ptr noundef nonnull align 8 dereferenceable(89), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(89), i1 noundef zeroext, double noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) 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)) #2 align 2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #10

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

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

declare void @_ZN10SimTKIpopt14DenseSymMatrix18SpecialAddForLMSR1ERKNS_11DenseVectorERKNS_14DenseGenMatrixE(ptr noundef nonnull align 8 dereferenceable(97), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(89)) #5

declare noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix19ComputeEigenVectorsERKNS_14DenseSymMatrixERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(97), ptr noundef nonnull align 8 dereferenceable(240)) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14INTERNAL_ABORTC2ENSt7__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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater16SplitEigenvaluesERNS_14DenseGenMatrixERKNS_11DenseVectorERNS_8SmartPtrIS1_EES8_(ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

declare void @_ZN10SimTKIpopt17MultiVectorMatrix23AddOneMultiVectorMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(128), double noundef, ptr noundef nonnull align 8 dereferenceable(128), double noundef) #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69)) #6 align 2

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

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

declare void @_ZN10SimTKIpopt22MultiVectorMatrixSpaceC1EiRKNS_11VectorSpaceE(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) 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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !19, i64 112}
!10 = !{!"_ZTSN10SimTKIpopt24LimMemQuasiNewtonUpdaterE", !11, i64 0, !20, i64 56, !14, i64 64, !21, i64 68, !22, i64 72, !23, i64 80, !14, i64 88, !23, i64 96, !23, i64 104, !19, i64 112, !23, i64 120, !24, i64 128, !14, i64 136, !24, i64 144, !23, i64 152, !19, i64 160, !14, i64 164, !14, i64 168, !25, i64 176, !25, i64 184, !25, i64 192, !26, i64 200, !27, i64 208, !28, i64 216, !23, i64 224, !25, i64 232, !25, i64 240, !29, i64 248, !19, i64 256, !25, i64 264, !29, i64 272, !24, i64 280, !24, i64 288, !30, i64 296, !30, i64 304, !14, i64 312, !25, i64 320, !25, i64 328, !25, i64 336, !26, i64 344, !27, i64 352, !28, i64 360, !23, i64 368, !25, i64 376, !25, i64 384, !29, i64 392, !19, i64 400, !25, i64 408, !29, i64 416}
!11 = !{!"_ZTSN10SimTKIpopt14HessianUpdaterE", !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 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEE", !6, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt24LimMemQuasiNewtonUpdater12LMUpdateTypeE", !7, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt24LimMemQuasiNewtonUpdater16LMInitializationE", !7, i64 0}
!23 = !{!"double", !7, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_6VectorEEE", !6, i64 0}
!25 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEE", !6, i64 0}
!26 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_11DenseVectorEEE", !6, i64 0}
!27 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEE", !6, i64 0}
!28 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_6VectorEEE", !6, i64 0}
!29 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEE", !6, i64 0}
!30 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_6MatrixEEE", !6, i64 0}
!31 = !{i8 0, i8 2}
!32 = !{}
!33 = !{!34, !34, i64 0}
!34 = !{!"vtable pointer", !8, i64 0}
!35 = !{!10, !14, i64 136}
!36 = !{!10, !23, i64 152}
!37 = !{!10, !23, i64 120}
!38 = !{!10, !19, i64 160}
!39 = !{!10, !14, i64 164}
!40 = !{!10, !14, i64 88}
!41 = !{!10, !14, i64 168}
!42 = !{!10, !19, i64 256}
!43 = !{!10, !23, i64 224}
!44 = !{!10, !23, i64 80}
!45 = !{!19, !19, i64 0}
!46 = !{!23, !23, i64 0}
!47 = !{!10, !21, i64 68}
!48 = !{!10, !22, i64 72}
!49 = !{!10, !23, i64 96}
!50 = !{!10, !23, i64 104}
!51 = !{!10, !14, i64 64}


; 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.41" = type { ptr }
%"class.SimTKIpopt::SmartPtr.5" = 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.29" = type { i8 }
%"class.SimTKIpopt::SmartPtr.27" = type { ptr }
%"class.SimTKIpopt::SmartPtr" = type { ptr }
%"class.SimTKIpopt::SmartPtr.21" = type { ptr }
%"class.SimTKIpopt::SmartPtr.25" = type { ptr }
%"class.SimTKIpopt::SmartPtr.64" = type { ptr }
%"class.SimTKIpopt::SmartPtr.23" = type { ptr }
%"class.SimTKIpopt::SmartPtr.24" = type { ptr }
%"class.SimTKIpopt::SmartPtr.86" = type { ptr }
%"class.SimTKIpopt::SmartPtr.26" = type { ptr }
%"class.SimTKIpopt::SmartPtr.22" = type { ptr }
%"class.SimTKIpopt::SmartPtr.87" = type { ptr }

@_ZTIN10SimTKIpopt14SymMatrixSpaceE = external constant ptr
@_ZTIN10SimTKIpopt22CompoundSymMatrixSpaceE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt11MatrixSpaceE = external constant ptr
@_ZTIN10SimTKIpopt27LowRankUpdateSymMatrixSpaceE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.25 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [111 x i8], align 1
@_ZTIN10SimTKIpopt14OPTION_INVALIDE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt8IpoptNLPE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt13RestoIpoptNLPE = external constant ptr
@.str.29 = external hidden unnamed_addr constant [25 x i8], align 1
@_ZTIN10SimTKIpopt6VectorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundVectorE = external constant ptr
@_ZTIN10SimTKIpopt6MatrixE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundMatrixE = external constant ptr
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [63 x i8], align 1
@_ZTIN10SimTKIpopt14INTERNAL_ABORTE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.45 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [51 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 @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 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: 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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater13UpdateHessianEv(ptr noundef nonnull align 8 dereferenceable(424) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %3 = alloca %"class.SimTKIpopt::SmartPtr.5", align 8
  %4 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator.29", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.29", align 1
  %10 = alloca %"class.SimTKIpopt::SmartPtr.27", align 8
  %11 = alloca %"class.SimTKIpopt::SmartPtr", align 8
  %12 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %13 = alloca %"class.SimTKIpopt::SmartPtr.25", align 8
  %14 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %15 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %16 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %17 = alloca %"class.SimTKIpopt::SmartPtr.27", align 8
  %18 = alloca %"class.SimTKIpopt::SmartPtr.27", align 8
  %19 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %20 = alloca %"class.SimTKIpopt::SmartPtr.64", align 8
  %21 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %22 = alloca %"class.SimTKIpopt::SmartPtr.27", align 8
  %23 = alloca %"class.SimTKIpopt::SmartPtr.27", align 8
  %24 = alloca %"class.SimTKIpopt::SmartPtr.27", align 8
  %25 = alloca %"class.SimTKIpopt::SmartPtr.27", align 8
  %26 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %27 = alloca %"class.SimTKIpopt::SmartPtr.64", align 8
  %28 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %29 = alloca %"class.SimTKIpopt::SmartPtr.27", align 8
  %30 = alloca %"class.SimTKIpopt::SmartPtr.27", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.29", align 1
  %33 = alloca %"class.SimTKIpopt::SmartPtr.25", align 8
  %34 = alloca %"class.SimTKIpopt::SmartPtr.25", align 8
  %35 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %36 = alloca %"class.SimTKIpopt::SmartPtr.64", align 8
  %37 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %38 = alloca %"class.SimTKIpopt::SmartPtr.64", align 8
  %39 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %40 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %41 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %42 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %43 = alloca %"class.SimTKIpopt::SmartPtr.64", align 8
  %44 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %45 = alloca %"class.SimTKIpopt::SmartPtr.64", align 8
  %46 = alloca %"class.SimTKIpopt::SmartPtr.25", align 8
  %47 = alloca %"class.SimTKIpopt::SmartPtr.25", align 8
  %48 = alloca %"class.SimTKIpopt::SmartPtr.25", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.29", align 1
  %51 = alloca %"class.SimTKIpopt::SmartPtr.25", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator.29", align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator.29", align 1
  %56 = alloca %"class.SimTKIpopt::SmartPtr.25", align 8
  %57 = alloca %"class.SimTKIpopt::SmartPtr.23", align 8
  %58 = alloca %"class.SimTKIpopt::SmartPtr.24", align 8
  %59 = alloca %"class.SimTKIpopt::SmartPtr.86", align 8
  %60 = alloca %"class.SimTKIpopt::SmartPtr.26", align 8
  %61 = alloca %"class.SimTKIpopt::SmartPtr.24", align 8
  %62 = alloca %"class.SimTKIpopt::SmartPtr.24", align 8
  %63 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %64 = alloca %"class.SimTKIpopt::SmartPtr.24", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator.29", align 1
  %67 = alloca %"class.SimTKIpopt::SmartPtr.25", align 8
  %68 = alloca %"class.SimTKIpopt::SmartPtr.26", align 8
  %69 = alloca %"class.SimTKIpopt::SmartPtr.26", align 8
  %70 = alloca %"class.SimTKIpopt::SmartPtr.26", align 8
  %71 = alloca %"class.SimTKIpopt::SmartPtr.24", align 8
  %72 = alloca %"class.SimTKIpopt::SmartPtr.23", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator.29", align 1
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator.29", align 1
  %78 = alloca %"class.SimTKIpopt::SmartPtr.24", align 8
  %79 = alloca %"class.SimTKIpopt::SmartPtr.24", align 8
  %80 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %81 = alloca %"class.SimTKIpopt::SmartPtr.87", align 8
  %82 = alloca %"class.SimTKIpopt::SmartPtr", align 8
  %83 = alloca %"class.SimTKIpopt::SmartPtr.87", align 8
  %84 = alloca %"class.SimTKIpopt::SmartPtr", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator.29", align 1
  %87 = getelementptr inbounds i8, ptr %0, i64 56
  %88 = tail call noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_27LowRankUpdateSymMatrixSpaceEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %87)
  br i1 %88, label %89, label %156

89:                                               ; preds = %1
  %90 = getelementptr inbounds i8, ptr %0, i64 112
  %91 = load i8, ptr %90, align 8, !tbaa !5, !range !30, !noundef !31
  %92 = trunc nuw i8 %91 to i1
  br i1 %92, label %93, label %115

93:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #12
  %94 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %95 = load ptr, ptr %94, align 8, !tbaa !32
  %96 = getelementptr inbounds i8, ptr %95, i64 160
  %97 = load ptr, ptr %96, align 8
  call void %97(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.41") align 8 %2, ptr noundef nonnull align 8 dereferenceable(24) %94)
  %98 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_14SymMatrixSpaceEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %99 = icmp ne ptr %98, null
  call void @llvm.assume(i1 %99)
  %100 = call ptr @__dynamic_cast(ptr nonnull %98, ptr nonnull @_ZTIN10SimTKIpopt14SymMatrixSpaceE, ptr nonnull @_ZTIN10SimTKIpopt22CompoundSymMatrixSpaceE, i64 0) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #12
  invoke void @_ZNK10SimTKIpopt22CompoundSymMatrixSpace12GetCompSpaceEii(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.5") align 8 %3, ptr noundef nonnull align 8 dereferenceable(97) %100, i32 noundef 0, i32 noundef 0)
          to label %101 unwind label %106

101:                                              ; preds = %93
  %102 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_11MatrixSpaceEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %3)
  %103 = icmp eq ptr %102, null
  br i1 %103, label %110, label %104

104:                                              ; preds = %101
  %105 = call ptr @__dynamic_cast(ptr nonnull %102, ptr nonnull @_ZTIN10SimTKIpopt11MatrixSpaceE, ptr nonnull @_ZTIN10SimTKIpopt27LowRankUpdateSymMatrixSpaceE, i64 0) #12
  br label %110

106:                                              ; preds = %93
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %114

108:                                              ; preds = %110
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11MatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #12
  br label %114

110:                                              ; preds = %101, %104
  %111 = phi ptr [ %105, %104 ], [ null, %101 ]
  %112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef %111)
          to label %113 unwind label %108

113:                                              ; preds = %110
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11MatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14SymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %2) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #12
  br label %156

114:                                              ; preds = %108, %106
  %.pn152 = phi { ptr, i32 } [ %109, %108 ], [ %107, %106 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14SymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %2) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #12
  br label %1180

115:                                              ; preds = %89
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #12
  %116 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %117 = load ptr, ptr %116, align 8, !tbaa !32
  %118 = getelementptr inbounds i8, ptr %117, i64 160
  %119 = load ptr, ptr %118, align 8
  call void %119(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.41") align 8 %4, ptr noundef nonnull align 8 dereferenceable(24) %116)
  %120 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_14SymMatrixSpaceEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %121 = icmp eq ptr %120, null
  br i1 %121, label %126, label %122

122:                                              ; preds = %115
  %123 = call ptr @__dynamic_cast(ptr nonnull %120, ptr nonnull @_ZTIN10SimTKIpopt14SymMatrixSpaceE, ptr nonnull @_ZTIN10SimTKIpopt27LowRankUpdateSymMatrixSpaceE, i64 0) #12
  br label %126

124:                                              ; preds = %126
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %155

126:                                              ; preds = %115, %122
  %127 = phi ptr [ %123, %122 ], [ null, %115 ]
  %128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef %127)
          to label %129 unwind label %124

129:                                              ; preds = %126
  %130 = call noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_27LowRankUpdateSymMatrixSpaceEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %87)
  br i1 %130, label %154, label %131

131:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %132 unwind label %141

132:                                              ; preds = %131
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #12
  %133 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.26)
          to label %134 unwind label %143

134:                                              ; preds = %132
  %135 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.27)
          to label %136 unwind label %143

136:                                              ; preds = %134
  %137 = call ptr @__cxa_allocate_exception(i64 112) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %138 unwind label %.thread

138:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %139 unwind label %146

139:                                              ; preds = %138
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %137, ptr noundef nonnull %7, ptr noundef nonnull %8, i32 noundef 148)
          to label %140 unwind label %148

140:                                              ; preds = %139
  invoke void @__cxa_throw(ptr nonnull %137, ptr nonnull @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #13
          to label %1181 unwind label %148

141:                                              ; preds = %131
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #12
  br label %153

143:                                              ; preds = %134, %132
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %152

.thread:                                          ; preds = %136
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %151

146:                                              ; preds = %138
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %150

148:                                              ; preds = %140, %139
  %.0126 = phi i1 [ false, %140 ], [ true, %139 ]
  %149 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  br label %150

150:                                              ; preds = %146, %148
  %.1127 = phi i1 [ %.0126, %148 ], [ true, %146 ]
  %.pn = phi { ptr, i32 } [ %149, %148 ], [ %147, %146 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #12
  br i1 %.1127, label %151, label %152

151:                                              ; preds = %.thread, %150
  %.pn.pn278 = phi { ptr, i32 } [ %145, %.thread ], [ %.pn, %150 ]
  call void @__cxa_free_exception(ptr %137) #12
  br label %152

152:                                              ; preds = %150, %151, %143
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn278, %151 ], [ %.pn, %150 ], [ %144, %143 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #12
  br label %153

153:                                              ; preds = %152, %141
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %152 ], [ %142, %141 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #12
  br label %155

154:                                              ; preds = %129
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14SymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  br label %156

155:                                              ; preds = %153, %124
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %153 ], [ %125, %124 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14SymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  br label %1180

156:                                              ; preds = %113, %154, %1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  %157 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %87)
  call void @_ZNK10SimTKIpopt27LowRankUpdateSymMatrixSpace9P_LowRankEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %10, ptr noundef nonnull align 8 dereferenceable(41) %157)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %158 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %87)
  invoke void @_ZNK10SimTKIpopt27LowRankUpdateSymMatrixSpace18LowRankVectorSpaceEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr") align 8 %11, ptr noundef nonnull align 8 dereferenceable(41) %158)
          to label %159 unwind label %167

159:                                              ; preds = %156
  %160 = getelementptr inbounds i8, ptr %0, i64 112
  %161 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %162 = trunc nuw i8 %161 to i1
  br i1 %162, label %163, label %228

163:                                              ; preds = %159
  %164 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %165 unwind label %169

165:                                              ; preds = %163
  %166 = call ptr @__dynamic_cast(ptr nonnull %164, ptr nonnull @_ZTIN10SimTKIpopt8IpoptNLPE, ptr nonnull @_ZTIN10SimTKIpopt13RestoIpoptNLPE, i64 0) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  invoke void @_ZNK10SimTKIpopt13RestoIpoptNLP4DR_xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %12, ptr noundef nonnull align 8 dereferenceable(312) %166)
          to label %171 unwind label %182

167:                                              ; preds = %156
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %1179

169:                                              ; preds = %226, %218, %215, %213, %179, %163
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %1178

171:                                              ; preds = %165
  %172 = getelementptr inbounds i8, ptr %0, i64 128
  %173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %174 unwind label %184

174:                                              ; preds = %171
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  %175 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %172)
  %176 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %175)
  %177 = getelementptr inbounds i8, ptr %0, i64 136
  store i32 %176, ptr %177, align 8, !tbaa !34
  %178 = call noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6MatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %10)
  br i1 %178, label %179, label %187

179:                                              ; preds = %174
  %180 = getelementptr inbounds i8, ptr %0, i64 144
  %181 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef nonnull align 8 dereferenceable(8) %172)
          to label %213 unwind label %169

182:                                              ; preds = %165
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %186

184:                                              ; preds = %171
  %185 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #12
  br label %186

186:                                              ; preds = %184, %182
  %.pn154 = phi { ptr, i32 } [ %185, %184 ], [ %183, %182 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  br label %1178

187:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  %188 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
  %189 = load ptr, ptr %188, align 8, !tbaa !32
  %190 = getelementptr inbounds i8, ptr %189, i64 16
  %191 = load ptr, ptr %190, align 8
  %192 = invoke noundef ptr %191(ptr noundef nonnull align 8 dereferenceable(16) %188)
          to label %193 unwind label %202

193:                                              ; preds = %187
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef %192)
  %194 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
  %195 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %172)
  %196 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %194, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %195, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %196)
          to label %197 unwind label %204

197:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  invoke void @_ZN10SimTKIpopt8ConstPtrINS_6VectorEEENS_8SmartPtrIKT_EERKNS2_IS3_EE(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %14, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %198 unwind label %206

198:                                              ; preds = %197
  %199 = getelementptr inbounds i8, ptr %0, i64 144
  %200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %199, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %201 unwind label %208

201:                                              ; preds = %198
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  br label %213

202:                                              ; preds = %187
  %203 = landingpad { ptr, i32 }
          cleanup
  br label %212

204:                                              ; preds = %193
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %211

206:                                              ; preds = %197
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %210

208:                                              ; preds = %198
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #12
  br label %210

210:                                              ; preds = %208, %206
  %.pn156 = phi { ptr, i32 } [ %209, %208 ], [ %207, %206 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  br label %211

211:                                              ; preds = %210, %204
  %.pn156.pn = phi { ptr, i32 } [ %.pn156, %210 ], [ %205, %204 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #12
  br label %212

212:                                              ; preds = %211, %202
  %.pn156.pn.pn = phi { ptr, i32 } [ %.pn156.pn, %211 ], [ %203, %202 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  br label %1178

213:                                              ; preds = %179, %201
  %214 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %215 unwind label %169

215:                                              ; preds = %213
  %216 = call noundef double @_ZNK10SimTKIpopt9IpoptData7curr_muEv(ptr noundef nonnull align 8 dereferenceable(864) %214)
  %217 = invoke noundef double @_ZNK10SimTKIpopt13RestoIpoptNLP3EtaEd(ptr noundef nonnull align 8 dereferenceable(312) %166, double noundef %216)
          to label %218 unwind label %169

218:                                              ; preds = %215
  %219 = getelementptr inbounds i8, ptr %0, i64 152
  store double %217, ptr %219, align 8, !tbaa !35
  %220 = getelementptr inbounds i8, ptr %0, i64 120
  %221 = load double, ptr %220, align 8, !tbaa !36
  %222 = fcmp une double %217, %221
  %223 = getelementptr inbounds i8, ptr %0, i64 160
  %224 = zext i1 %222 to i8
  store i8 %224, ptr %223, align 8, !tbaa !37
  %225 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %226 unwind label %169

226:                                              ; preds = %218
  %227 = load double, ptr %219, align 8, !tbaa !35
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %225, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.29, double noundef %227)
          to label %228 unwind label %169

228:                                              ; preds = %226, %159
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18)
  %229 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %230 = trunc nuw i8 %229 to i1
  br i1 %230, label %231, label %294

231:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  %232 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %233 unwind label %241

233:                                              ; preds = %231
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %20, ptr noundef nonnull align 8 dereferenceable(864) %232)
          to label %234 unwind label %241

234:                                              ; preds = %233
  %235 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %19, ptr noundef nonnull align 8 dereferenceable(280) %235)
          to label %236 unwind label %243

236:                                              ; preds = %234
  %237 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6VectorEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %19)
  %238 = icmp eq ptr %237, null
  br i1 %238, label %245, label %239

239:                                              ; preds = %236
  %240 = call ptr @__dynamic_cast(ptr nonnull %237, ptr nonnull @_ZTIN10SimTKIpopt6VectorE, ptr nonnull @_ZTIN10SimTKIpopt14CompoundVectorE, i64 0) #12
  br label %245

241:                                              ; preds = %233, %231
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %257

243:                                              ; preds = %234
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #12
  br label %257

245:                                              ; preds = %236, %239
  %246 = phi ptr [ %240, %239 ], [ null, %236 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  invoke void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %21, ptr noundef nonnull align 8 dereferenceable(265) %246, i32 noundef 0)
          to label %247 unwind label %258

247:                                              ; preds = %245
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %249 unwind label %260

249:                                              ; preds = %247
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #12
  %250 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %251 unwind label %263

251:                                              ; preds = %249
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities10curr_jac_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %22, ptr noundef nonnull align 8 dereferenceable(2025) %250)
          to label %252 unwind label %263

252:                                              ; preds = %251
  %253 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6MatrixEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %22)
  %254 = icmp eq ptr %253, null
  br i1 %254, label %265, label %255

255:                                              ; preds = %252
  %256 = call ptr @__dynamic_cast(ptr nonnull %253, ptr nonnull @_ZTIN10SimTKIpopt6MatrixE, ptr nonnull @_ZTIN10SimTKIpopt14CompoundMatrixE, i64 0) #12
  br label %265

257:                                              ; preds = %243, %241
  %.pn171 = phi { ptr, i32 } [ %244, %243 ], [ %242, %241 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  br label %1177

258:                                              ; preds = %245
  %259 = landingpad { ptr, i32 }
          cleanup
  br label %262

260:                                              ; preds = %247
  %261 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #12
  br label %262

262:                                              ; preds = %260, %258
  %.pn173 = phi { ptr, i32 } [ %261, %260 ], [ %259, %258 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  br label %1177

263:                                              ; preds = %251, %249
  %264 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  br label %1177

265:                                              ; preds = %252, %255
  %266 = phi ptr [ %256, %255 ], [ null, %252 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  invoke void @_ZNK10SimTKIpopt14CompoundMatrix7GetCompEii(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %23, ptr noundef nonnull align 8 dereferenceable(129) %266, i32 noundef 0, i32 noundef 0)
          to label %267 unwind label %277

267:                                              ; preds = %265
  %268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %269 unwind label %279

269:                                              ; preds = %267
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %270 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %271 unwind label %282

271:                                              ; preds = %269
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities10curr_jac_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %24, ptr noundef nonnull align 8 dereferenceable(2025) %270)
          to label %272 unwind label %282

272:                                              ; preds = %271
  %273 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6MatrixEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %24)
  %274 = icmp eq ptr %273, null
  br i1 %274, label %284, label %275

275:                                              ; preds = %272
  %276 = call ptr @__dynamic_cast(ptr nonnull %273, ptr nonnull @_ZTIN10SimTKIpopt6MatrixE, ptr nonnull @_ZTIN10SimTKIpopt14CompoundMatrixE, i64 0) #12
  br label %284

277:                                              ; preds = %265
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %281

279:                                              ; preds = %267
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #12
  br label %281

281:                                              ; preds = %279, %277
  %.pn175 = phi { ptr, i32 } [ %280, %279 ], [ %278, %277 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  br label %1177

282:                                              ; preds = %271, %269
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  br label %1177

284:                                              ; preds = %272, %275
  %285 = phi ptr [ %276, %275 ], [ null, %272 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #12
  invoke void @_ZNK10SimTKIpopt14CompoundMatrix7GetCompEii(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %25, ptr noundef nonnull align 8 dereferenceable(129) %285, i32 noundef 0, i32 noundef 0)
          to label %286 unwind label %289

286:                                              ; preds = %284
  %287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %288 unwind label %291

288:                                              ; preds = %286
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  br label %340

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

291:                                              ; preds = %286
  %292 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #12
  br label %293

293:                                              ; preds = %291, %289
  %.pn177 = phi { ptr, i32 } [ %292, %291 ], [ %290, %289 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  br label %1177

294:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %295 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %296 unwind label %317

296:                                              ; preds = %294
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %27, ptr noundef nonnull align 8 dereferenceable(864) %295)
          to label %297 unwind label %317

297:                                              ; preds = %296
  %298 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %27)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %26, ptr noundef nonnull align 8 dereferenceable(280) %298)
          to label %299 unwind label %319

299:                                              ; preds = %297
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %301 unwind label %321

301:                                              ; preds = %299
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #12
  %302 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %303 unwind label %325

303:                                              ; preds = %301
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities11curr_grad_fEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %28, ptr noundef nonnull align 8 dereferenceable(2025) %302)
          to label %304 unwind label %325

304:                                              ; preds = %303
  %305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %306 unwind label %327

306:                                              ; preds = %304
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  %307 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %308 unwind label %330

308:                                              ; preds = %306
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities10curr_jac_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %29, ptr noundef nonnull align 8 dereferenceable(2025) %307)
          to label %309 unwind label %330

309:                                              ; preds = %308
  %310 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %311 unwind label %332

311:                                              ; preds = %309
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %312 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %313 unwind label %335

313:                                              ; preds = %311
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities10curr_jac_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.27") align 8 %30, ptr noundef nonnull align 8 dereferenceable(2025) %312)
          to label %314 unwind label %335

314:                                              ; preds = %313
  %315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %316 unwind label %337

316:                                              ; preds = %314
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  br label %340

317:                                              ; preds = %296, %294
  %318 = landingpad { ptr, i32 }
          cleanup
  br label %324

319:                                              ; preds = %297
  %320 = landingpad { ptr, i32 }
          cleanup
  br label %323

321:                                              ; preds = %299
  %322 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #12
  br label %323

323:                                              ; preds = %321, %319
  %.pn162 = phi { ptr, i32 } [ %322, %321 ], [ %320, %319 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #12
  br label %324

324:                                              ; preds = %323, %317
  %.pn162.pn = phi { ptr, i32 } [ %.pn162, %323 ], [ %318, %317 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #12
  br label %1177

325:                                              ; preds = %303, %301
  %326 = landingpad { ptr, i32 }
          cleanup
  br label %329

327:                                              ; preds = %304
  %328 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #12
  br label %329

329:                                              ; preds = %327, %325
  %.pn165 = phi { ptr, i32 } [ %328, %327 ], [ %326, %325 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  br label %1177

330:                                              ; preds = %308, %306
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %334

332:                                              ; preds = %309
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #12
  br label %334

334:                                              ; preds = %332, %330
  %.pn167 = phi { ptr, i32 } [ %333, %332 ], [ %331, %330 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  br label %1177

335:                                              ; preds = %313, %311
  %336 = landingpad { ptr, i32 }
          cleanup
  br label %339

337:                                              ; preds = %314
  %338 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #12
  br label %339

339:                                              ; preds = %337, %335
  %.pn169 = phi { ptr, i32 } [ %338, %337 ], [ %336, %335 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  br label %1177

340:                                              ; preds = %316, %288
  %341 = getelementptr inbounds i8, ptr %0, i64 280
  %342 = call noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %341)
  br i1 %342, label %348, label %343

343:                                              ; preds = %340
  %344 = getelementptr inbounds i8, ptr %0, i64 164
  %345 = load i32, ptr %344, align 4, !tbaa !38
  %346 = getelementptr inbounds i8, ptr %0, i64 88
  %347 = load i32, ptr %346, align 8, !tbaa !39
  %.not = icmp slt i32 %345, %347
  br i1 %.not, label %422, label %348

348:                                              ; preds = %343, %340
  %349 = call noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %341)
  br i1 %349, label %350, label %355

350:                                              ; preds = %348
  %351 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %352 unwind label %353

352:                                              ; preds = %350
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %351, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.30)
          to label %368 unwind label %353

353:                                              ; preds = %420, %409, %405, %402, %399, %396, %393, %390, %387, %384, %379, %376, %373, %370, %368, %358, %357, %355, %352, %350
  %354 = landingpad { ptr, i32 }
          cleanup
  br label %1177

355:                                              ; preds = %348
  %356 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %357 unwind label %353

357:                                              ; preds = %355
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %356, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.31)
          to label %358 unwind label %353

358:                                              ; preds = %357
  %359 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %360 unwind label %353

360:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %361 unwind label %363

361:                                              ; preds = %360
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %359, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %362 unwind label %365

362:                                              ; preds = %361
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #12
  br label %368

363:                                              ; preds = %360
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %367

365:                                              ; preds = %361
  %366 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #12
  br label %367

367:                                              ; preds = %365, %363
  %.pn267 = phi { ptr, i32 } [ %366, %365 ], [ %364, %363 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #12
  br label %1177

368:                                              ; preds = %352, %362
  %369 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %341, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %370 unwind label %353

370:                                              ; preds = %368
  %371 = getelementptr inbounds i8, ptr %0, i64 288
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %371, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %373 unwind label %353

373:                                              ; preds = %370
  %374 = getelementptr inbounds i8, ptr %0, i64 296
  %375 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %374, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %376 unwind label %353

376:                                              ; preds = %373
  %377 = getelementptr inbounds i8, ptr %0, i64 304
  %378 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %377, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %379 unwind label %353

379:                                              ; preds = %376
  %380 = getelementptr inbounds i8, ptr %0, i64 168
  store i32 0, ptr %380, align 8, !tbaa !40
  %381 = getelementptr inbounds i8, ptr %0, i64 164
  store i32 0, ptr %381, align 4, !tbaa !38
  %382 = getelementptr inbounds i8, ptr %0, i64 176
  %383 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %382, ptr noundef null)
          to label %384 unwind label %353

384:                                              ; preds = %379
  %385 = getelementptr inbounds i8, ptr %0, i64 184
  %386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %385, ptr noundef null)
          to label %387 unwind label %353

387:                                              ; preds = %384
  %388 = getelementptr inbounds i8, ptr %0, i64 192
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %388, ptr noundef null)
          to label %390 unwind label %353

390:                                              ; preds = %387
  %391 = getelementptr inbounds i8, ptr %0, i64 200
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %391, ptr noundef null)
          to label %393 unwind label %353

393:                                              ; preds = %390
  %394 = getelementptr inbounds i8, ptr %0, i64 208
  %395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %394, ptr noundef null)
          to label %396 unwind label %353

396:                                              ; preds = %393
  %397 = getelementptr inbounds i8, ptr %0, i64 232
  %398 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %397, ptr noundef null)
          to label %399 unwind label %353

399:                                              ; preds = %396
  %400 = getelementptr inbounds i8, ptr %0, i64 240
  %401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %400, ptr noundef null)
          to label %402 unwind label %353

402:                                              ; preds = %399
  %403 = getelementptr inbounds i8, ptr %0, i64 248
  %404 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %403, ptr noundef null)
          to label %405 unwind label %353

405:                                              ; preds = %402
  %406 = getelementptr inbounds i8, ptr %0, i64 256
  store i8 0, ptr %406, align 8, !tbaa !41
  %407 = getelementptr inbounds i8, ptr %0, i64 272
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %407, ptr noundef null)
          to label %409 unwind label %353

409:                                              ; preds = %405
  %410 = getelementptr inbounds i8, ptr %0, i64 264
  %411 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %410, ptr noundef null)
          to label %412 unwind label %353

412:                                              ; preds = %409
  %413 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %414 = trunc nuw i8 %413 to i1
  br i1 %414, label %415, label %417

415:                                              ; preds = %412
  %416 = getelementptr inbounds i8, ptr %0, i64 120
  store double -1.000000e+00, ptr %416, align 8, !tbaa !36
  br label %420

417:                                              ; preds = %412
  %418 = getelementptr inbounds i8, ptr %0, i64 80
  %419 = load double, ptr %418, align 8, !tbaa !42
  br label %420

420:                                              ; preds = %417, %415
  %.sink = phi double [ -1.000000e+00, %415 ], [ %419, %417 ]
  %421 = getelementptr inbounds i8, ptr %0, i64 224
  store double %.sink, ptr %421, align 8
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater4SetWEv(ptr noundef nonnull align 8 dereferenceable(424) %0)
          to label %1170 unwind label %353

422:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %423 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
  %424 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %423)
          to label %425 unwind label %454

425:                                              ; preds = %422
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef %424)
  %426 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %33)
  %427 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
  %428 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %341)
  invoke void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205) %426, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %427, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %428, double noundef 0.000000e+00)
          to label %429 unwind label %456

429:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #12
  %430 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
  %431 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %430)
          to label %432 unwind label %458

432:                                              ; preds = %429
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef %431)
  %433 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %434 = trunc nuw i8 %433 to i1
  br i1 %434, label %435, label %476

435:                                              ; preds = %432
  %436 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %437 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %438 unwind label %460

438:                                              ; preds = %435
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %36, ptr noundef nonnull align 8 dereferenceable(864) %437)
          to label %439 unwind label %460

439:                                              ; preds = %438
  %440 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %36)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %35, ptr noundef nonnull align 8 dereferenceable(280) %440)
          to label %441 unwind label %462

441:                                              ; preds = %439
  %442 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35)
  %443 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %436, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %442, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %443)
          to label %444 unwind label %464

444:                                              ; preds = %441
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  %445 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #12
  %446 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %447 unwind label %468

447:                                              ; preds = %444
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %38, ptr noundef nonnull align 8 dereferenceable(864) %446)
          to label %448 unwind label %468

448:                                              ; preds = %447
  %449 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %38)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %37, ptr noundef nonnull align 8 dereferenceable(280) %449)
          to label %450 unwind label %470

450:                                              ; preds = %448
  %451 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
  %452 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %445, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %451, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %452)
          to label %453 unwind label %472

453:                                              ; preds = %450
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  br label %508

454:                                              ; preds = %422
  %455 = landingpad { ptr, i32 }
          cleanup
  br label %1176

456:                                              ; preds = %425
  %457 = landingpad { ptr, i32 }
          cleanup
  br label %1175

458:                                              ; preds = %429
  %459 = landingpad { ptr, i32 }
          cleanup
  br label %1174

460:                                              ; preds = %438, %435
  %461 = landingpad { ptr, i32 }
          cleanup
  br label %467

462:                                              ; preds = %439
  %463 = landingpad { ptr, i32 }
          cleanup
  br label %466

464:                                              ; preds = %441
  %465 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #12
  br label %466

466:                                              ; preds = %464, %462
  %.pn186 = phi { ptr, i32 } [ %465, %464 ], [ %463, %462 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #12
  br label %467

467:                                              ; preds = %466, %460
  %.pn186.pn = phi { ptr, i32 } [ %.pn186, %466 ], [ %461, %460 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  br label %1173

468:                                              ; preds = %447, %444
  %469 = landingpad { ptr, i32 }
          cleanup
  br label %475

470:                                              ; preds = %448
  %471 = landingpad { ptr, i32 }
          cleanup
  br label %474

472:                                              ; preds = %450
  %473 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #12
  br label %474

474:                                              ; preds = %472, %470
  %.pn189 = phi { ptr, i32 } [ %473, %472 ], [ %471, %470 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #12
  br label %475

475:                                              ; preds = %474, %468
  %.pn189.pn = phi { ptr, i32 } [ %.pn189, %474 ], [ %469, %468 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  br label %1173

476:                                              ; preds = %432
  %477 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  %478 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %479 unwind label %495

479:                                              ; preds = %476
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities11curr_grad_fEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %39, ptr noundef nonnull align 8 dereferenceable(2025) %478)
          to label %480 unwind label %495

480:                                              ; preds = %479
  %481 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %39)
  %482 = getelementptr inbounds i8, ptr %0, i64 288
  %483 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %482)
  invoke void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205) %477, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %481, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %483, double noundef 0.000000e+00)
          to label %484 unwind label %497

484:                                              ; preds = %480
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  %485 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #12
  %486 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %487 unwind label %500

487:                                              ; preds = %484
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities26curr_jac_cT_times_curr_y_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %40, ptr noundef nonnull align 8 dereferenceable(2025) %486)
          to label %488 unwind label %500

488:                                              ; preds = %487
  %489 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #12
  %490 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %491 unwind label %502

491:                                              ; preds = %488
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities26curr_jac_dT_times_curr_y_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %41, ptr noundef nonnull align 8 dereferenceable(2025) %490)
          to label %492 unwind label %502

492:                                              ; preds = %491
  %493 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %41)
  invoke void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205) %485, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %489, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %493, double noundef 1.000000e+00)
          to label %494 unwind label %504

494:                                              ; preds = %492
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  br label %508

495:                                              ; preds = %479, %476
  %496 = landingpad { ptr, i32 }
          cleanup
  br label %499

497:                                              ; preds = %480
  %498 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #12
  br label %499

499:                                              ; preds = %497, %495
  %.pn181 = phi { ptr, i32 } [ %498, %497 ], [ %496, %495 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  br label %1173

500:                                              ; preds = %487, %484
  %501 = landingpad { ptr, i32 }
          cleanup
  br label %507

502:                                              ; preds = %491, %488
  %503 = landingpad { ptr, i32 }
          cleanup
  br label %506

504:                                              ; preds = %492
  %505 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #12
  br label %506

506:                                              ; preds = %504, %502
  %.pn183 = phi { ptr, i32 } [ %505, %504 ], [ %503, %502 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #12
  br label %507

507:                                              ; preds = %506, %500
  %.pn183.pn = phi { ptr, i32 } [ %.pn183, %506 ], [ %501, %500 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  br label %1173

508:                                              ; preds = %494, %453
  %509 = getelementptr inbounds i8, ptr %0, i64 296
  %510 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %509)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #12
  %511 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %512 unwind label %534

512:                                              ; preds = %508
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %43, ptr noundef nonnull align 8 dereferenceable(864) %511)
          to label %513 unwind label %534

513:                                              ; preds = %512
  %514 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %42, ptr noundef nonnull align 8 dereferenceable(280) %514)
          to label %515 unwind label %536

515:                                              ; preds = %513
  %516 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
  %517 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %510, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %516, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %517)
          to label %518 unwind label %538

518:                                              ; preds = %515
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  %519 = getelementptr inbounds i8, ptr %0, i64 304
  %520 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %519)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #12
  %521 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %522 unwind label %542

522:                                              ; preds = %518
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.64") align 8 %45, ptr noundef nonnull align 8 dereferenceable(864) %521)
          to label %523 unwind label %542

523:                                              ; preds = %522
  %524 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %45)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8 %44, ptr noundef nonnull align 8 dereferenceable(280) %524)
          to label %525 unwind label %544

525:                                              ; preds = %523
  %526 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  %527 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %520, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %526, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %527)
          to label %528 unwind label %546

528:                                              ; preds = %525
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %529 = call noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6MatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %10)
  br i1 %529, label %530, label %552

530:                                              ; preds = %528
  %531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %532 unwind label %550

532:                                              ; preds = %530
  %533 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %576 unwind label %550

534:                                              ; preds = %512, %508
  %535 = landingpad { ptr, i32 }
          cleanup
  br label %541

536:                                              ; preds = %513
  %537 = landingpad { ptr, i32 }
          cleanup
  br label %540

538:                                              ; preds = %515
  %539 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #12
  br label %540

540:                                              ; preds = %538, %536
  %.pn192 = phi { ptr, i32 } [ %539, %538 ], [ %537, %536 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #12
  br label %541

541:                                              ; preds = %540, %534
  %.pn192.pn = phi { ptr, i32 } [ %.pn192, %540 ], [ %535, %534 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  br label %1173

542:                                              ; preds = %522, %518
  %543 = landingpad { ptr, i32 }
          cleanup
  br label %549

544:                                              ; preds = %523
  %545 = landingpad { ptr, i32 }
          cleanup
  br label %548

546:                                              ; preds = %525
  %547 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #12
  br label %548

548:                                              ; preds = %546, %544
  %.pn195 = phi { ptr, i32 } [ %547, %546 ], [ %545, %544 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #12
  br label %549

549:                                              ; preds = %548, %542
  %.pn195.pn = phi { ptr, i32 } [ %.pn195, %548 ], [ %543, %542 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  br label %1173

550:                                              ; preds = %578, %576, %572, %568, %566, %560, %558, %552, %532, %530
  %551 = landingpad { ptr, i32 }
          cleanup
  br label %1172

552:                                              ; preds = %528
  %553 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
  %554 = load ptr, ptr %553, align 8, !tbaa !32
  %555 = getelementptr inbounds i8, ptr %554, i64 16
  %556 = load ptr, ptr %555, align 8
  %557 = invoke noundef ptr %556(ptr noundef nonnull align 8 dereferenceable(16) %553)
          to label %558 unwind label %550

558:                                              ; preds = %552
  %559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef %557)
          to label %560 unwind label %550

560:                                              ; preds = %558
  %561 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
  %562 = load ptr, ptr %561, align 8, !tbaa !32
  %563 = getelementptr inbounds i8, ptr %562, i64 16
  %564 = load ptr, ptr %563, align 8
  %565 = invoke noundef ptr %564(ptr noundef nonnull align 8 dereferenceable(16) %561)
          to label %566 unwind label %550

566:                                              ; preds = %560
  %567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef %565)
          to label %568 unwind label %550

568:                                              ; preds = %566
  %569 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
  %570 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33)
  %571 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %569, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %570, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %571)
          to label %572 unwind label %550

572:                                              ; preds = %568
  %573 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
  %574 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
  %575 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %573, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %574, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %575)
          to label %576 unwind label %550

576:                                              ; preds = %572, %532
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef null)
          to label %578 unwind label %550

578:                                              ; preds = %576
  %579 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef null)
          to label %580 unwind label %550

580:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48)
  %581 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %582 = trunc nuw i8 %581 to i1
  br i1 %582, label %583, label %604

583:                                              ; preds = %580
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %585 unwind label %602

585:                                              ; preds = %583
  %586 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48)
  %587 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %586)
          to label %588 unwind label %602

588:                                              ; preds = %585
  %589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef %587)
          to label %590 unwind label %602

590:                                              ; preds = %588
  %591 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %592 = getelementptr inbounds i8, ptr %0, i64 152
  %593 = load double, ptr %592, align 8, !tbaa !35
  %594 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  invoke void @_ZN10SimTKIpopt6Vector12AddOneVectorEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(205) %591, double noundef %593, ptr noundef nonnull align 8 dereferenceable(205) %594, double noundef 0.000000e+00)
          to label %595 unwind label %602

595:                                              ; preds = %590
  %596 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %597 = getelementptr inbounds i8, ptr %0, i64 144
  %598 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %597)
  invoke void @_ZN10SimTKIpopt6Vector19ElementWiseMultiplyERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %596, ptr noundef nonnull align 8 dereferenceable(205) %598)
          to label %599 unwind label %602

599:                                              ; preds = %595
  %600 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %601 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %48)
  invoke void @_ZN10SimTKIpopt6Vector12AddOneVectorEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(205) %600, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %601, double noundef 1.000000e+00)
          to label %604 unwind label %602

602:                                              ; preds = %599, %595, %590, %588, %585, %583
  %603 = landingpad { ptr, i32 }
          cleanup
  br label %1171

604:                                              ; preds = %599, %580
  %605 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %606 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %605)
          to label %607 unwind label %618

607:                                              ; preds = %604
  %608 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %609 unwind label %618

609:                                              ; preds = %607
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %608, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.33, double noundef %606)
          to label %610 unwind label %618

610:                                              ; preds = %609
  %611 = call noundef double @_ZNSt14numeric_limitsIdE7epsilonEv() #12
  %612 = fmul double %611, 1.000000e+02
  %613 = fcmp olt double %606, %612
  br i1 %613, label %614, label %625

614:                                              ; preds = %610
  %615 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %616 unwind label %618

616:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %617 unwind label %620

617:                                              ; preds = %616
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %615, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %.thread279 unwind label %622

.thread279:                                       ; preds = %617
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #12
  br label %.thread305

618:                                              ; preds = %1163, %1158, %1156, %1153, %1151, %1149, %1147, %.thread305, %.thread309, %936, %934, %892, %882, %881, %879, %878, %873, %636, %628, %614, %609, %607, %604
  %619 = landingpad { ptr, i32 }
          cleanup
  br label %1171

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

622:                                              ; preds = %617
  %623 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #12
  br label %624

624:                                              ; preds = %622, %620
  %.pn198 = phi { ptr, i32 } [ %623, %622 ], [ %621, %620 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #12
  br label %1171

625:                                              ; preds = %610
  %626 = getelementptr inbounds i8, ptr %0, i64 68
  %627 = load i32, ptr %626, align 4, !tbaa !43
  switch i32 %627, label %.thread309 [
    i32 0, label %628
    i32 1, label %873
  ]

628:                                              ; preds = %625
  %629 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %630 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %631 = invoke noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater17CheckSkippingBFGSERNS_6VectorES2_(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(205) %629, ptr noundef nonnull align 8 dereferenceable(205) %630)
          to label %632 unwind label %618

632:                                              ; preds = %628
  br i1 %631, label %.thread305, label %633

633:                                              ; preds = %632
  %634 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %635 = trunc nuw i8 %634 to i1
  br i1 %635, label %636, label %637

636:                                              ; preds = %633
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater23StoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %0)
          to label %637 unwind label %618

637:                                              ; preds = %636, %633
  %638 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %639 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %48)
  %640 = invoke noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater18UpdateInternalDataERKNS_6VectorES3_NS_8SmartPtrIS1_EE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(205) %638, ptr noundef nonnull align 8 dereferenceable(205) %639, ptr noundef nonnull %51)
          to label %641 unwind label %658

641:                                              ; preds = %637
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #12
  %642 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %643 = trunc nuw i8 %642 to i1
  br i1 %643, label %644, label %.thread281

644:                                              ; preds = %641
  %645 = getelementptr inbounds i8, ptr %0, i64 200
  %646 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %645)
  %647 = invoke noundef double @_ZNK10SimTKIpopt6Vector3MinEv(ptr noundef nonnull align 8 dereferenceable(205) %646)
          to label %648 unwind label %660

648:                                              ; preds = %644
  %649 = fcmp ugt double %647, 0.000000e+00
  br i1 %649, label %.thread281, label %650

650:                                              ; preds = %648
  %651 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %652 unwind label %660

652:                                              ; preds = %650
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %651, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.35, double noundef %647)
          to label %653 unwind label %660

653:                                              ; preds = %652
  %654 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %655 unwind label %660

655:                                              ; preds = %653
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %53) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %656 unwind label %662

656:                                              ; preds = %655
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %654, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %657 unwind label %664

657:                                              ; preds = %656
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #12
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater25RestoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %0)
          to label %.thread305 unwind label %660

658:                                              ; preds = %637
  %659 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #12
  br label %1171

660:                                              ; preds = %657, %653, %652, %650, %644
  %661 = landingpad { ptr, i32 }
          cleanup
  br label %1171

662:                                              ; preds = %655
  %663 = landingpad { ptr, i32 }
          cleanup
  br label %666

664:                                              ; preds = %656
  %665 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #12
  br label %666

666:                                              ; preds = %664, %662
  %.pn230 = phi { ptr, i32 } [ %665, %664 ], [ %663, %662 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #12
  br label %1171

.thread281:                                       ; preds = %648, %641
  %667 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %668 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %669 = invoke noundef double @_ZNK10SimTKIpopt6Vector3DotERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %667, ptr noundef nonnull align 8 dereferenceable(205) %668)
          to label %670 unwind label %676

670:                                              ; preds = %.thread281
  %671 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %672 = trunc nuw i8 %671 to i1
  br i1 %672, label %721, label %673

673:                                              ; preds = %670
  %674 = getelementptr inbounds i8, ptr %0, i64 72
  %675 = load i32, ptr %674, align 8, !tbaa !44
  switch i32 %675, label %692 [
    i32 0, label %678
    i32 1, label %683
    i32 2, label %688
  ]

676:                                              ; preds = %714, %712, %705, %694, %692, %683, %678, %.thread281
  %677 = landingpad { ptr, i32 }
          cleanup
  br label %1171

678:                                              ; preds = %673
  %679 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %680 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %679)
          to label %681 unwind label %676

681:                                              ; preds = %678
  %square235 = fmul double %680, %680
  %682 = fdiv double %669, %square235
  br label %.sink.split

683:                                              ; preds = %673
  %684 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %685 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %684)
          to label %686 unwind label %676

686:                                              ; preds = %683
  %square234 = fmul double %685, %685
  %687 = fdiv double %square234, %669
  br label %.sink.split

688:                                              ; preds = %673
  %689 = getelementptr inbounds i8, ptr %0, i64 80
  %690 = load double, ptr %689, align 8, !tbaa !42
  br label %.sink.split

.sink.split:                                      ; preds = %681, %686, %688
  %.sink313 = phi double [ %690, %688 ], [ %687, %686 ], [ %682, %681 ]
  %691 = getelementptr inbounds i8, ptr %0, i64 224
  store double %.sink313, ptr %691, align 8, !tbaa !45
  br label %692

692:                                              ; preds = %.sink.split, %673
  %693 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %694 unwind label %676

694:                                              ; preds = %692
  %695 = getelementptr inbounds i8, ptr %0, i64 224
  %696 = load double, ptr %695, align 8, !tbaa !45
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %693, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.37, double noundef %696)
          to label %697 unwind label %676

697:                                              ; preds = %694
  %698 = load double, ptr %695, align 8, !tbaa !45
  %699 = getelementptr inbounds i8, ptr %0, i64 96
  %700 = load double, ptr %699, align 8, !tbaa !46
  %701 = fcmp olt double %698, %700
  %702 = getelementptr inbounds i8, ptr %0, i64 104
  %703 = load double, ptr %702, align 8
  %704 = fcmp ogt double %698, %703
  %or.cond = select i1 %701, i1 true, i1 %704
  br i1 %or.cond, label %705, label %721

705:                                              ; preds = %697
  %706 = call noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %703, double noundef %698)
  %707 = load double, ptr %699, align 8, !tbaa !46
  %708 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %706, double noundef %707)
  store double %708, ptr %695, align 8, !tbaa !45
  %709 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %710 unwind label %676

710:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %55) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %711 unwind label %716

711:                                              ; preds = %710
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %709, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %712 unwind label %718

712:                                              ; preds = %711
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #12
  %713 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %714 unwind label %676

714:                                              ; preds = %712
  %715 = load double, ptr %695, align 8, !tbaa !45
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %713, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.39, double noundef %715)
          to label %721 unwind label %676

716:                                              ; preds = %710
  %717 = landingpad { ptr, i32 }
          cleanup
  br label %720

718:                                              ; preds = %711
  %719 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #12
  br label %720

720:                                              ; preds = %718, %716
  %.pn236 = phi { ptr, i32 } [ %719, %718 ], [ %717, %716 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #12
  br label %1171

721:                                              ; preds = %697, %714, %670
  %722 = getelementptr inbounds i8, ptr %0, i64 64
  %723 = load i32, ptr %722, align 8, !tbaa !47
  %724 = icmp eq i32 %723, 0
  br i1 %724, label %.thread309, label %725

725:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #12
  %726 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %727 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector11MakeNewCopyEv(ptr noundef nonnull align 8 dereferenceable(205) %726)
          to label %728 unwind label %736

728:                                              ; preds = %725
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef %727)
  %729 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
  %730 = call double @sqrt(double noundef %669) #12
  %731 = fdiv double 1.000000e+00, %730
  invoke void @_ZN10SimTKIpopt6Vector4ScalEd(ptr noundef nonnull align 8 dereferenceable(205) %729, double noundef %731)
          to label %732 unwind label %738

732:                                              ; preds = %728
  %733 = getelementptr inbounds i8, ptr %0, i64 232
  %734 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
  br i1 %640, label %735, label %740

735:                                              ; preds = %732
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater18AugmentMultiVectorERNS_8SmartPtrINS_17MultiVectorMatrixEEERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(8) %733, ptr noundef nonnull align 8 dereferenceable(205) %734)
          to label %741 unwind label %738

736:                                              ; preds = %725
  %737 = landingpad { ptr, i32 }
          cleanup
  br label %872

738:                                              ; preds = %740, %735, %728
  %739 = landingpad { ptr, i32 }
          cleanup
  br label %871

740:                                              ; preds = %732
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater16ShiftMultiVectorERNS_8SmartPtrINS_17MultiVectorMatrixEEERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(8) %733, ptr noundef nonnull align 8 dereferenceable(205) %734)
          to label %741 unwind label %738

741:                                              ; preds = %740, %735
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  %742 = getelementptr inbounds i8, ptr %0, i64 200
  %743 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %742)
  invoke void @_ZNK10SimTKIpopt11DenseVector18MakeNewDenseVectorEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.23") align 8 %57, ptr noundef nonnull align 8 dereferenceable(240) %743)
          to label %744 unwind label %780

744:                                              ; preds = %741
  %745 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
  %746 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %742)
  invoke void @_ZN10SimTKIpopt6Vector4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %745, ptr noundef nonnull align 8 dereferenceable(205) %746)
          to label %747 unwind label %782

747:                                              ; preds = %744
  %748 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
  invoke void @_ZN10SimTKIpopt6Vector15ElementWiseSqrtEv(ptr noundef nonnull align 8 dereferenceable(205) %748)
          to label %749 unwind label %782

749:                                              ; preds = %747
  %750 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
  invoke void @_ZN10SimTKIpopt6Vector21ElementWiseReciprocalEv(ptr noundef nonnull align 8 dereferenceable(205) %750)
          to label %751 unwind label %782

751:                                              ; preds = %749
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #12
  %752 = getelementptr inbounds i8, ptr %0, i64 208
  %753 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %752)
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %58, ptr noundef nonnull align 8 dereferenceable(89) %753)
          to label %754 unwind label %784

754:                                              ; preds = %751
  %755 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
  %756 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %752)
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(89) %755, ptr noundef nonnull align 8 dereferenceable(89) %756)
          to label %757 unwind label %786

757:                                              ; preds = %754
  %758 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
  %759 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix12ScaleColumnsERKNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89) %758, ptr noundef nonnull align 8 dereferenceable(240) %759)
          to label %760 unwind label %786

760:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #12
  %761 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #14
          to label %762 unwind label %788

762:                                              ; preds = %760
  %763 = getelementptr inbounds i8, ptr %0, i64 168
  %764 = load i32, ptr %763, align 8, !tbaa !40
  invoke void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20) %761, i32 noundef %764)
          to label %765 unwind label %790

765:                                              ; preds = %762
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull %761)
          to label %766 unwind label %788

766:                                              ; preds = %765
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #12
  %767 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %59)
  %768 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseSymMatrixSpace21MakeNewDenseSymMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %767)
          to label %769 unwind label %792

769:                                              ; preds = %766
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef %768)
          to label %770 unwind label %792

770:                                              ; preds = %769
  %771 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %60)
  %772 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix14HighRankUpdateEbdRKNS_14DenseGenMatrixEd(ptr noundef nonnull align 8 dereferenceable(97) %771, i1 noundef zeroext false, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(89) %772, double noundef 0.000000e+00)
          to label %.invoke unwind label %794

.invoke:                                          ; preds = %770
  %773 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %774 = trunc nuw i8 %773 to i1
  %775 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %60)
  %. = select i1 %774, i64 152, i64 224
  %.336 = select i1 %774, i64 272, i64 248
  %776 = getelementptr inbounds i8, ptr %0, i64 %.
  %777 = load double, ptr %776, align 8, !tbaa !48
  %778 = getelementptr inbounds i8, ptr %0, i64 %.336
  %779 = call noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %778)
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix9AddMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(97) %775, double noundef %777, ptr noundef nonnull align 8 dereferenceable(97) %779, double noundef 1.000000e+00)
          to label %796 unwind label %794

780:                                              ; preds = %741
  %781 = landingpad { ptr, i32 }
          cleanup
  br label %870

782:                                              ; preds = %749, %747, %744
  %783 = landingpad { ptr, i32 }
          cleanup
  br label %869

784:                                              ; preds = %751
  %785 = landingpad { ptr, i32 }
          cleanup
  br label %868

786:                                              ; preds = %757, %754
  %787 = landingpad { ptr, i32 }
          cleanup
  br label %867

788:                                              ; preds = %765, %760
  %789 = landingpad { ptr, i32 }
          cleanup
  br label %866

790:                                              ; preds = %762
  %791 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %761, i64 noundef 24) #15
  br label %866

792:                                              ; preds = %769, %766
  %793 = landingpad { ptr, i32 }
          cleanup
  br label %865

794:                                              ; preds = %.invoke, %770
  %795 = landingpad { ptr, i32 }
          cleanup
  br label %864

796:                                              ; preds = %.invoke
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #12
  %797 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %752)
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %61, ptr noundef nonnull align 8 dereferenceable(89) %797)
          to label %798 unwind label %806

798:                                              ; preds = %796
  %799 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
  %800 = call noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %60)
  %801 = invoke noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89) %799, ptr noundef nonnull align 8 dereferenceable(97) %800)
          to label %802 unwind label %808

802:                                              ; preds = %798
  br i1 %801, label %810, label %803

803:                                              ; preds = %802
  %804 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %805 unwind label %808

805:                                              ; preds = %803
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %804, i32 noundef 2, i32 noundef 9, ptr noundef nonnull @.str.40)
          to label %1131 unwind label %808

806:                                              ; preds = %796
  %807 = landingpad { ptr, i32 }
          cleanup
  br label %863

808:                                              ; preds = %805, %803, %798
  %809 = landingpad { ptr, i32 }
          cleanup
  br label %862

810:                                              ; preds = %802
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #12
  %811 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %62, ptr noundef nonnull align 8 dereferenceable(89) %811)
          to label %812 unwind label %834

812:                                              ; preds = %810
  %813 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %62)
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(89) %813, double noundef 1.000000e+00)
          to label %814 unwind label %836

814:                                              ; preds = %812
  %815 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
  %816 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %62)
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix23CholeskyBackSolveMatrixEbdRS0_(ptr noundef nonnull align 8 dereferenceable(89) %815, i1 noundef zeroext true, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(89) %816)
          to label %817 unwind label %836

817:                                              ; preds = %814
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #12
  %818 = getelementptr inbounds i8, ptr %0, i64 176
  %819 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %818)
  invoke void @_ZNK10SimTKIpopt17MultiVectorMatrix24MakeNewMultiVectorMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.22") align 8 %63, ptr noundef nonnull align 8 dereferenceable(128) %819)
          to label %820 unwind label %838

820:                                              ; preds = %817
  %821 = getelementptr inbounds i8, ptr %0, i64 240
  %822 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %821, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %.invoke319 unwind label %840

.invoke319:                                       ; preds = %820
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  %823 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %824 = trunc nuw i8 %823 to i1
  %825 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %821)
  %826 = getelementptr inbounds i8, ptr %0, i64 224
  %827 = load double, ptr %826, align 8
  %828 = getelementptr inbounds i8, ptr %0, i64 152
  %829 = load double, ptr %828, align 8
  %830 = getelementptr inbounds i8, ptr %0, i64 264
  %.sink320 = select i1 %824, ptr %830, ptr %818
  %831 = select i1 %824, double %829, double %827
  %832 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %.sink320)
  %833 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %62)
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %825, double noundef %831, ptr noundef nonnull align 8 dereferenceable(128) %832, ptr noundef nonnull align 8 dereferenceable(69) %833, double noundef 0.000000e+00)
          to label %843 unwind label %836

834:                                              ; preds = %810
  %835 = landingpad { ptr, i32 }
          cleanup
  br label %861

836:                                              ; preds = %.invoke319, %814, %812
  %837 = landingpad { ptr, i32 }
          cleanup
  br label %860

838:                                              ; preds = %817
  %839 = landingpad { ptr, i32 }
          cleanup
  br label %842

840:                                              ; preds = %820
  %841 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #12
  br label %842

842:                                              ; preds = %840, %838
  %.pn238 = phi { ptr, i32 } [ %841, %840 ], [ %839, %838 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  br label %860

843:                                              ; preds = %.invoke319
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #12
  %844 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %64, ptr noundef nonnull align 8 dereferenceable(89) %844)
          to label %845 unwind label %855

845:                                              ; preds = %843
  %846 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %64)
  %847 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
  %848 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %62)
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix16AddMatrixProductEdRKS0_bS2_bd(ptr noundef nonnull align 8 dereferenceable(89) %846, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(89) %847, i1 noundef zeroext true, ptr noundef nonnull align 8 dereferenceable(89) %848, i1 noundef zeroext false, double noundef 0.000000e+00)
          to label %849 unwind label %857

849:                                              ; preds = %845
  %850 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %821)
  %851 = getelementptr inbounds i8, ptr %0, i64 232
  %852 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %851)
  %853 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64)
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %850, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %852, ptr noundef nonnull align 8 dereferenceable(69) %853, double noundef 1.000000e+00)
          to label %854 unwind label %857

854:                                              ; preds = %849
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  br label %1131

855:                                              ; preds = %843
  %856 = landingpad { ptr, i32 }
          cleanup
  br label %859

857:                                              ; preds = %849, %845
  %858 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #12
  br label %859

859:                                              ; preds = %857, %855
  %.pn240 = phi { ptr, i32 } [ %858, %857 ], [ %856, %855 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  br label %860

860:                                              ; preds = %859, %842, %836
  %.pn240.pn = phi { ptr, i32 } [ %.pn240, %859 ], [ %837, %836 ], [ %.pn238, %842 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #12
  br label %861

861:                                              ; preds = %860, %834
  %.pn240.pn.pn = phi { ptr, i32 } [ %.pn240.pn, %860 ], [ %835, %834 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  br label %862

862:                                              ; preds = %861, %808
  %.pn240.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn, %861 ], [ %809, %808 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #12
  br label %863

863:                                              ; preds = %862, %806
  %.pn240.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn, %862 ], [ %807, %806 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  br label %864

864:                                              ; preds = %863, %794
  %.pn240.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn.pn, %863 ], [ %795, %794 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #12
  br label %865

865:                                              ; preds = %864, %792
  %.pn240.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn.pn.pn, %864 ], [ %793, %792 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #12
  br label %866

866:                                              ; preds = %865, %790, %788
  %.pn240.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn.pn.pn.pn, %865 ], [ %789, %788 ], [ %791, %790 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #12
  br label %867

867:                                              ; preds = %866, %786
  %.pn240.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn.pn.pn.pn.pn, %866 ], [ %787, %786 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #12
  br label %868

868:                                              ; preds = %867, %784
  %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn.pn.pn.pn.pn.pn, %867 ], [ %785, %784 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #12
  br label %869

869:                                              ; preds = %868, %782
  %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn, %868 ], [ %783, %782 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #12
  br label %870

870:                                              ; preds = %869, %780
  %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %869 ], [ %781, %780 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  br label %871

871:                                              ; preds = %870, %738
  %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %870 ], [ %739, %738 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #12
  br label %872

872:                                              ; preds = %871, %736
  %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %871 ], [ %737, %736 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #12
  br label %1171

873:                                              ; preds = %625
  %874 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %875 unwind label %618

875:                                              ; preds = %873
  %876 = call noundef double @_ZNK10SimTKIpopt9IpoptData11info_regu_xEv(ptr noundef nonnull align 8 dereferenceable(864) %874)
  %877 = fcmp ogt double %876, 0.000000e+00
  br i1 %877, label %878, label %892

878:                                              ; preds = %875
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater25RestoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %0)
          to label %879 unwind label %618

879:                                              ; preds = %878
  %880 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %881 unwind label %618

881:                                              ; preds = %879
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %880, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.41)
          to label %882 unwind label %618

882:                                              ; preds = %881
  %883 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %884 unwind label %618

884:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %66) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %885 unwind label %887

885:                                              ; preds = %884
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %883, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %886 unwind label %889

886:                                              ; preds = %885
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #12
  br label %892

887:                                              ; preds = %884
  %888 = landingpad { ptr, i32 }
          cleanup
  br label %891

889:                                              ; preds = %885
  %890 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #12
  br label %891

891:                                              ; preds = %889, %887
  %.pn200 = phi { ptr, i32 } [ %890, %889 ], [ %888, %887 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #12
  br label %1171

892:                                              ; preds = %886, %875
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater23StoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %0)
          to label %893 unwind label %618

893:                                              ; preds = %892
  %894 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %895 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %48)
  %896 = invoke noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater18UpdateInternalDataERKNS_6VectorES3_NS_8SmartPtrIS1_EE(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(205) %894, ptr noundef nonnull align 8 dereferenceable(205) %895, ptr noundef nonnull %67)
          to label %897 unwind label %907

897:                                              ; preds = %893
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #12
  %898 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %899 = trunc nuw i8 %898 to i1
  br i1 %899, label %939, label %900

900:                                              ; preds = %897
  %901 = getelementptr inbounds i8, ptr %0, i64 168
  %902 = load i32, ptr %901, align 8, !tbaa !40
  %903 = icmp eq i32 %902, 1
  br i1 %903, label %904, label %909

904:                                              ; preds = %900
  %905 = getelementptr inbounds i8, ptr %0, i64 80
  %906 = load double, ptr %905, align 8, !tbaa !42
  br label %.sink.split321

907:                                              ; preds = %893
  %908 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #12
  br label %1171

909:                                              ; preds = %900
  %910 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %911 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %912 = invoke noundef double @_ZNK10SimTKIpopt6Vector3DotERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %910, ptr noundef nonnull align 8 dereferenceable(205) %911)
          to label %913 unwind label %918

913:                                              ; preds = %909
  %914 = call double @llvm.fabs.f64(double %912)
  %915 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 1.000000e-08, double noundef %914)
  %916 = getelementptr inbounds i8, ptr %0, i64 72
  %917 = load i32, ptr %916, align 8, !tbaa !44
  switch i32 %917, label %934 [
    i32 0, label %920
    i32 1, label %925
    i32 2, label %930
  ]

918:                                              ; preds = %925, %920, %909
  %919 = landingpad { ptr, i32 }
          cleanup
  br label %1171

920:                                              ; preds = %913
  %921 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %922 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %921)
          to label %923 unwind label %918

923:                                              ; preds = %920
  %square202 = fmul double %922, %922
  %924 = fdiv double %915, %square202
  br label %.sink.split321

925:                                              ; preds = %913
  %926 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %927 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %926)
          to label %928 unwind label %918

928:                                              ; preds = %925
  %square = fmul double %927, %927
  %929 = fdiv double %square, %915
  br label %.sink.split321

930:                                              ; preds = %913
  %931 = getelementptr inbounds i8, ptr %0, i64 80
  %932 = load double, ptr %931, align 8, !tbaa !42
  br label %.sink.split321

.sink.split321:                                   ; preds = %904, %930, %928, %923
  %.sink322 = phi double [ %924, %923 ], [ %929, %928 ], [ %932, %930 ], [ %906, %904 ]
  %933 = getelementptr inbounds i8, ptr %0, i64 224
  store double %.sink322, ptr %933, align 8, !tbaa !45
  br label %934

934:                                              ; preds = %.sink.split321, %913
  %935 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %936 unwind label %618

936:                                              ; preds = %934
  %937 = getelementptr inbounds i8, ptr %0, i64 224
  %938 = load double, ptr %937, align 8, !tbaa !45
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %935, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.37, double noundef %938)
          to label %939 unwind label %618

939:                                              ; preds = %936, %897
  %940 = getelementptr inbounds i8, ptr %0, i64 64
  %941 = load i32, ptr %940, align 8, !tbaa !47
  %942 = icmp eq i32 %941, 0
  br i1 %942, label %.thread309, label %943

943:                                              ; preds = %939
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68)
  %944 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %945 = trunc nuw i8 %944 to i1
  br i1 %945, label %959, label %946

946:                                              ; preds = %943
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #12
  %947 = getelementptr inbounds i8, ptr %0, i64 248
  %948 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %947)
  invoke void @_ZNK10SimTKIpopt14DenseSymMatrix21MakeNewDenseSymMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.26") align 8 %69, ptr noundef nonnull align 8 dereferenceable(97) %948)
          to label %949 unwind label %952

949:                                              ; preds = %946
  %950 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %951 unwind label %954

951:                                              ; preds = %949
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #12
  br label %.invoke324

952:                                              ; preds = %946
  %953 = landingpad { ptr, i32 }
          cleanup
  br label %956

954:                                              ; preds = %949
  %955 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #12
  br label %956

956:                                              ; preds = %954, %952
  %.pn203 = phi { ptr, i32 } [ %955, %954 ], [ %953, %952 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #12
  br label %1130

957:                                              ; preds = %.invoke324, %975
  %958 = landingpad { ptr, i32 }
          cleanup
  br label %1130

959:                                              ; preds = %943
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #12
  %960 = getelementptr inbounds i8, ptr %0, i64 272
  %961 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %960)
  invoke void @_ZNK10SimTKIpopt14DenseSymMatrix21MakeNewDenseSymMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.26") align 8 %70, ptr noundef nonnull align 8 dereferenceable(97) %961)
          to label %962 unwind label %970

962:                                              ; preds = %959
  %963 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %964 unwind label %972

964:                                              ; preds = %962
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #12
  br label %.invoke324

.invoke324:                                       ; preds = %951, %964
  %.sink328 = phi i64 [ 224, %951 ], [ 152, %964 ]
  %.sink325 = phi ptr [ %947, %951 ], [ %960, %964 ]
  %965 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68)
  %966 = getelementptr inbounds i8, ptr %0, i64 %.sink328
  %967 = load double, ptr %966, align 8, !tbaa !48
  %968 = fneg double %967
  %969 = call noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %.sink325)
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix9AddMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(97) %965, double noundef %968, ptr noundef nonnull align 8 dereferenceable(97) %969, double noundef 0.000000e+00)
          to label %975 unwind label %957

970:                                              ; preds = %959
  %971 = landingpad { ptr, i32 }
          cleanup
  br label %974

972:                                              ; preds = %962
  %973 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #12
  br label %974

974:                                              ; preds = %972, %970
  %.pn205 = phi { ptr, i32 } [ %973, %972 ], [ %971, %970 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #12
  br label %1130

975:                                              ; preds = %.invoke324
  %976 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68)
  %977 = getelementptr inbounds i8, ptr %0, i64 200
  %978 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %977)
  %979 = getelementptr inbounds i8, ptr %0, i64 208
  %980 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %979)
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix18SpecialAddForLMSR1ERKNS_11DenseVectorERKNS_14DenseGenMatrixE(ptr noundef nonnull align 8 dereferenceable(97) %976, ptr noundef nonnull align 8 dereferenceable(240) %978, ptr noundef nonnull align 8 dereferenceable(89) %980)
          to label %981 unwind label %957

981:                                              ; preds = %975
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #12
  %982 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %979)
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix21MakeNewDenseGenMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.24") align 8 %71, ptr noundef nonnull align 8 dereferenceable(89) %982)
          to label %983 unwind label %1001

983:                                              ; preds = %981
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #12
  %984 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %977)
  invoke void @_ZNK10SimTKIpopt11DenseVector18MakeNewDenseVectorEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.23") align 8 %72, ptr noundef nonnull align 8 dereferenceable(240) %984)
          to label %985 unwind label %1003

985:                                              ; preds = %983
  %986 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %71)
  %987 = call noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %68)
  %988 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
  %989 = invoke noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix19ComputeEigenVectorsERKNS_14DenseSymMatrixERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89) %986, ptr noundef nonnull align 8 dereferenceable(97) %987, ptr noundef nonnull align 8 dereferenceable(240) %988)
          to label %990 unwind label %1005

990:                                              ; preds = %985
  br i1 %989, label %1020, label %991

991:                                              ; preds = %990
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %74) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %992 unwind label %1007

992:                                              ; preds = %991
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #12
  %993 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull @.str.26)
          to label %994 unwind label %1009

994:                                              ; preds = %992
  %995 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull @.str.44)
          to label %996 unwind label %1009

996:                                              ; preds = %994
  %997 = call ptr @__cxa_allocate_exception(i64 112) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %998 unwind label %.thread283

998:                                              ; preds = %996
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %77) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %999 unwind label %1012

999:                                              ; preds = %998
  invoke void @_ZN10SimTKIpopt14INTERNAL_ABORTC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %997, ptr noundef nonnull %75, ptr noundef nonnull %76, i32 noundef 551)
          to label %1000 unwind label %1014

1000:                                             ; preds = %999
  invoke void @__cxa_throw(ptr nonnull %997, ptr nonnull @_ZTIN10SimTKIpopt14INTERNAL_ABORTE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #13
          to label %1181 unwind label %1014

1001:                                             ; preds = %981
  %1002 = landingpad { ptr, i32 }
          cleanup
  br label %1129

1003:                                             ; preds = %983
  %1004 = landingpad { ptr, i32 }
          cleanup
  br label %1128

1005:                                             ; preds = %985
  %1006 = landingpad { ptr, i32 }
          cleanup
  br label %1127

1007:                                             ; preds = %991
  %1008 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #12
  br label %1019

1009:                                             ; preds = %994, %992
  %1010 = landingpad { ptr, i32 }
          cleanup
  br label %1018

.thread283:                                       ; preds = %996
  %1011 = landingpad { ptr, i32 }
          cleanup
  br label %1017

1012:                                             ; preds = %998
  %1013 = landingpad { ptr, i32 }
          cleanup
  br label %1016

1014:                                             ; preds = %1000, %999
  %.033 = phi i1 [ false, %1000 ], [ true, %999 ]
  %1015 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #12
  br label %1016

1016:                                             ; preds = %1012, %1014
  %.pn207 = phi { ptr, i32 } [ %1015, %1014 ], [ %1013, %1012 ]
  %.134 = phi i1 [ %.033, %1014 ], [ true, %1012 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #12
  br i1 %.134, label %1017, label %1018

1017:                                             ; preds = %.thread283, %1016
  %.pn207.pn286 = phi { ptr, i32 } [ %1011, %.thread283 ], [ %.pn207, %1016 ]
  call void @__cxa_free_exception(ptr %997) #12
  br label %1018

1018:                                             ; preds = %1016, %1017, %1009
  %.pn207.pn.pn = phi { ptr, i32 } [ %.pn207.pn286, %1017 ], [ %.pn207, %1016 ], [ %1010, %1009 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #12
  br label %1019

1019:                                             ; preds = %1018, %1007
  %.pn207.pn.pn.pn = phi { ptr, i32 } [ %.pn207.pn.pn, %1018 ], [ %1008, %1007 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #12
  br label %1127

1020:                                             ; preds = %990
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79)
  %1021 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %71)
  %1022 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
  %1023 = invoke noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater16SplitEigenvaluesERNS_14DenseGenMatrixERKNS_11DenseVectorERNS_8SmartPtrIS1_EES8_(ptr noundef nonnull align 8 dereferenceable(424) %0, ptr noundef nonnull align 8 dereferenceable(89) %1021, ptr noundef nonnull align 8 dereferenceable(240) %1022, ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %1024 unwind label %1026

1024:                                             ; preds = %1020
  br i1 %1023, label %1025, label %1028

1025:                                             ; preds = %1024
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater25RestoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424) %0)
          to label %1125 unwind label %1026

1026:                                             ; preds = %1025, %1020
  %1027 = landingpad { ptr, i32 }
          cleanup
  br label %1126

1028:                                             ; preds = %1024
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #12
  %1029 = getelementptr inbounds i8, ptr %0, i64 184
  %1030 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1029)
  invoke void @_ZNK10SimTKIpopt17MultiVectorMatrix24MakeNewMultiVectorMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.22") align 8 %80, ptr noundef nonnull align 8 dereferenceable(128) %1030)
          to label %1031 unwind label %1042

1031:                                             ; preds = %1028
  %1032 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %80)
  %1033 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1029)
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix23AddOneMultiVectorMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(128) %1032, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %1033, double noundef 0.000000e+00)
          to label %.invoke329 unwind label %1044

.invoke329:                                       ; preds = %1031
  %1034 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %1035 = trunc nuw i8 %1034 to i1
  %1036 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %80)
  %.337 = select i1 %1035, i64 152, i64 224
  %.338 = select i1 %1035, i64 264, i64 176
  %1037 = getelementptr inbounds i8, ptr %0, i64 %.337
  %1038 = load double, ptr %1037, align 8, !tbaa !48
  %1039 = fneg double %1038
  %1040 = getelementptr inbounds i8, ptr %0, i64 %.338
  %1041 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1040)
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix23AddOneMultiVectorMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(128) %1036, double noundef %1039, ptr noundef nonnull align 8 dereferenceable(128) %1041, double noundef 1.000000e+00)
          to label %1046 unwind label %1044

1042:                                             ; preds = %1028
  %1043 = landingpad { ptr, i32 }
          cleanup
  br label %1124

1044:                                             ; preds = %.invoke329, %1119, %1084, %1081, %1046, %1031
  %1045 = landingpad { ptr, i32 }
          cleanup
  br label %1123

1046:                                             ; preds = %.invoke329
  %1047 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_14DenseGenMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %1048 unwind label %1044

1048:                                             ; preds = %1046
  br i1 %1047, label %1049, label %1081

1049:                                             ; preds = %1048
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #12
  %1050 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #14
          to label %1051 unwind label %1071

1051:                                             ; preds = %1049
  %1052 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
  %1053 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %1052)
          to label %1054 unwind label %.thread287

1054:                                             ; preds = %1051
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #12
  %1055 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  invoke void @_ZNK10SimTKIpopt6Vector10OwnerSpaceEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr") align 8 %82, ptr noundef nonnull align 8 dereferenceable(205) %1055)
          to label %1056 unwind label %.thread291

1056:                                             ; preds = %1054
  %1057 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %82)
  invoke void @_ZN10SimTKIpopt22MultiVectorMatrixSpaceC1EiRKNS_11VectorSpaceE(ptr noundef nonnull align 8 dereferenceable(32) %1050, i32 noundef %1053, ptr noundef nonnull align 8 dereferenceable(16) %1057)
          to label %1059 unwind label %.thread294

.thread294:                                       ; preds = %1056
  %1058 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #12
  br label %1077

1059:                                             ; preds = %1056
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull %1050)
          to label %1060 unwind label %1075

1060:                                             ; preds = %1059
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #12
  %1061 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %81)
  %1062 = invoke noundef ptr @_ZNK10SimTKIpopt22MultiVectorMatrixSpace24MakeNewMultiVectorMatrixEv(ptr noundef nonnull align 8 dereferenceable(32) %1061)
          to label %1063 unwind label %1078

1063:                                             ; preds = %1060
  %1064 = getelementptr inbounds i8, ptr %0, i64 240
  %1065 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %1064, ptr noundef %1062)
          to label %1066 unwind label %1078

1066:                                             ; preds = %1063
  %1067 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1064)
  %1068 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %80)
  %1069 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %1067, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %1068, ptr noundef nonnull align 8 dereferenceable(69) %1069, double noundef 0.000000e+00)
          to label %1070 unwind label %1078

1070:                                             ; preds = %1066
  call void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #12
  br label %1084

1071:                                             ; preds = %1049
  %1072 = landingpad { ptr, i32 }
          cleanup
  br label %1080

.thread287:                                       ; preds = %1051
  %1073 = landingpad { ptr, i32 }
          cleanup
  br label %1077

.thread291:                                       ; preds = %1054
  %1074 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #12
  br label %1077

1075:                                             ; preds = %1059
  %1076 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #12
  br label %1080

1077:                                             ; preds = %.thread294, %.thread291, %.thread287
  %.pn212.pn290 = phi { ptr, i32 } [ %1073, %.thread287 ], [ %1074, %.thread291 ], [ %1058, %.thread294 ]
  call void @_ZdlPvm(ptr noundef nonnull %1050, i64 noundef 32) #15
  br label %1080

1078:                                             ; preds = %1066, %1063, %1060
  %1079 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #12
  br label %1080

1080:                                             ; preds = %1075, %1077, %1078, %1071
  %.pn215 = phi { ptr, i32 } [ %1079, %1078 ], [ %.pn212.pn290, %1077 ], [ %1076, %1075 ], [ %1072, %1071 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #12
  br label %1123

1081:                                             ; preds = %1048
  %1082 = getelementptr inbounds i8, ptr %0, i64 240
  %1083 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %1082, ptr noundef null)
          to label %1084 unwind label %1044

1084:                                             ; preds = %1081, %1070
  %1085 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_14DenseGenMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %1086 unwind label %1044

1086:                                             ; preds = %1084
  br i1 %1085, label %1087, label %1119

1087:                                             ; preds = %1086
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %83) #12
  %1088 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #14
          to label %1089 unwind label %1109

1089:                                             ; preds = %1087
  %1090 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %79)
  %1091 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %1090)
          to label %1092 unwind label %.thread296

1092:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #12
  %1093 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  invoke void @_ZNK10SimTKIpopt6Vector10OwnerSpaceEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr") align 8 %84, ptr noundef nonnull align 8 dereferenceable(205) %1093)
          to label %1094 unwind label %.thread300

1094:                                             ; preds = %1092
  %1095 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %84)
  invoke void @_ZN10SimTKIpopt22MultiVectorMatrixSpaceC1EiRKNS_11VectorSpaceE(ptr noundef nonnull align 8 dereferenceable(32) %1088, i32 noundef %1091, ptr noundef nonnull align 8 dereferenceable(16) %1095)
          to label %1097 unwind label %.thread303

.thread303:                                       ; preds = %1094
  %1096 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #12
  br label %1115

1097:                                             ; preds = %1094
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull %1088)
          to label %1098 unwind label %1113

1098:                                             ; preds = %1097
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #12
  %1099 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %83)
  %1100 = invoke noundef ptr @_ZNK10SimTKIpopt22MultiVectorMatrixSpace24MakeNewMultiVectorMatrixEv(ptr noundef nonnull align 8 dereferenceable(32) %1099)
          to label %1101 unwind label %1116

1101:                                             ; preds = %1098
  %1102 = getelementptr inbounds i8, ptr %0, i64 232
  %1103 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %1102, ptr noundef %1100)
          to label %1104 unwind label %1116

1104:                                             ; preds = %1101
  %1105 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1102)
  %1106 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %80)
  %1107 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %79)
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %1105, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %1106, ptr noundef nonnull align 8 dereferenceable(69) %1107, double noundef 0.000000e+00)
          to label %1108 unwind label %1116

1108:                                             ; preds = %1104
  call void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #12
  br label %1122

1109:                                             ; preds = %1087
  %1110 = landingpad { ptr, i32 }
          cleanup
  br label %1118

.thread296:                                       ; preds = %1089
  %1111 = landingpad { ptr, i32 }
          cleanup
  br label %1115

.thread300:                                       ; preds = %1092
  %1112 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #12
  br label %1115

1113:                                             ; preds = %1097
  %1114 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #12
  br label %1118

1115:                                             ; preds = %.thread303, %.thread300, %.thread296
  %.pn217.pn299 = phi { ptr, i32 } [ %1111, %.thread296 ], [ %1112, %.thread300 ], [ %1096, %.thread303 ]
  call void @_ZdlPvm(ptr noundef nonnull %1088, i64 noundef 32) #15
  br label %1118

1116:                                             ; preds = %1104, %1101, %1098
  %1117 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #12
  br label %1118

1118:                                             ; preds = %1113, %1115, %1116, %1109
  %.pn220 = phi { ptr, i32 } [ %1117, %1116 ], [ %.pn217.pn299, %1115 ], [ %1114, %1113 ], [ %1110, %1109 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #12
  br label %1123

1119:                                             ; preds = %1086
  %1120 = getelementptr inbounds i8, ptr %0, i64 232
  %1121 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %1120, ptr noundef null)
          to label %1122 unwind label %1044

1122:                                             ; preds = %1119, %1108
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #12
  br label %1125

1123:                                             ; preds = %1118, %1080, %1044
  %.pn220.pn = phi { ptr, i32 } [ %.pn220, %1118 ], [ %1045, %1044 ], [ %.pn215, %1080 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #12
  br label %1124

1124:                                             ; preds = %1123, %1042
  %.pn220.pn.pn = phi { ptr, i32 } [ %.pn220.pn, %1123 ], [ %1043, %1042 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #12
  br label %1126

1125:                                             ; preds = %1025, %1122
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #12
  br i1 %1023, label %.thread305, label %.thread309

1126:                                             ; preds = %1124, %1026
  %.pn224 = phi { ptr, i32 } [ %1027, %1026 ], [ %.pn220.pn.pn, %1124 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #12
  br label %1127

1127:                                             ; preds = %1126, %1019, %1005
  %.pn224.pn = phi { ptr, i32 } [ %.pn224, %1126 ], [ %.pn207.pn.pn.pn, %1019 ], [ %1006, %1005 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #12
  br label %1128

1128:                                             ; preds = %1127, %1003
  %.pn224.pn.pn = phi { ptr, i32 } [ %.pn224.pn, %1127 ], [ %1004, %1003 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #12
  br label %1129

1129:                                             ; preds = %1128, %1001
  %.pn224.pn.pn.pn = phi { ptr, i32 } [ %.pn224.pn.pn, %1128 ], [ %1002, %1001 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #12
  br label %1130

1130:                                             ; preds = %1129, %974, %957, %956
  %.pn224.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn224.pn.pn.pn, %1129 ], [ %958, %957 ], [ %.pn205, %974 ], [ %.pn203, %956 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #12
  br label %1171

1131:                                             ; preds = %854, %805
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #12
  br i1 %801, label %.thread309, label %.thread305

.thread309:                                       ; preds = %1125, %721, %939, %625, %1131
  %.1138312 = phi i1 [ false, %1131 ], [ false, %721 ], [ %877, %939 ], [ false, %625 ], [ %877, %1125 ]
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater4SetWEv(ptr noundef nonnull align 8 dereferenceable(424) %0)
          to label %1132 unwind label %618

1132:                                             ; preds = %.thread309
  br i1 %.1138312, label %1133, label %1147

1133:                                             ; preds = %1132
  %1134 = load i32, ptr %344, align 4, !tbaa !38
  %1135 = add nsw i32 %1134, 1
  br label %1147

.thread305:                                       ; preds = %1125, %657, %.thread279, %632, %1131
  %1136 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %1137 unwind label %618

1137:                                             ; preds = %.thread305
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %1138 unwind label %1142

1138:                                             ; preds = %1137
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %1136, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %1139 unwind label %1144

1139:                                             ; preds = %1138
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #12
  %1140 = load i32, ptr %344, align 4, !tbaa !38
  %1141 = add nsw i32 %1140, 1
  br label %1147

1142:                                             ; preds = %1137
  %1143 = landingpad { ptr, i32 }
          cleanup
  br label %1146

1144:                                             ; preds = %1138
  %1145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #12
  br label %1146

1146:                                             ; preds = %1144, %1142
  %.pn257 = phi { ptr, i32 } [ %1145, %1144 ], [ %1143, %1142 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #12
  br label %1171

1147:                                             ; preds = %1132, %1133, %1139
  %.sink335 = phi i32 [ %1135, %1133 ], [ %1141, %1139 ], [ 0, %1132 ]
  store i32 %.sink335, ptr %344, align 4, !tbaa !38
  %1148 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %1149 unwind label %618

1149:                                             ; preds = %1147
  %1150 = load i32, ptr %344, align 4, !tbaa !38
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %1148, i32 noundef 5, i32 noundef 9, ptr noundef nonnull @.str.46, i32 noundef %1150)
          to label %1151 unwind label %618

1151:                                             ; preds = %1149
  %1152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %341, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %1153 unwind label %618

1153:                                             ; preds = %1151
  %1154 = getelementptr inbounds i8, ptr %0, i64 288
  %1155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %1154, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %1156 unwind label %618

1156:                                             ; preds = %1153
  %1157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %509, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %1158 unwind label %618

1158:                                             ; preds = %1156
  %1159 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %519, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %1160 unwind label %618

1160:                                             ; preds = %1158
  %1161 = load i8, ptr %160, align 8, !tbaa !5, !range !30, !noundef !31
  %1162 = trunc nuw i8 %1161 to i1
  br i1 %1162, label %1163, label %1169

1163:                                             ; preds = %1160
  %1164 = getelementptr inbounds i8, ptr %0, i64 152
  %1165 = load double, ptr %1164, align 8, !tbaa !35
  %1166 = getelementptr inbounds i8, ptr %0, i64 120
  store double %1165, ptr %1166, align 8, !tbaa !36
  %1167 = getelementptr inbounds i8, ptr %0, i64 128
  %1168 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %1167, ptr noundef null)
          to label %1169 unwind label %618

1169:                                             ; preds = %1163, %1160
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  br label %1170

1170:                                             ; preds = %420, %1169
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  ret void

1171:                                             ; preds = %618, %624, %891, %907, %918, %1130, %1146, %676, %720, %872, %660, %666, %658, %602
  %.pn259.pn = phi { ptr, i32 } [ %603, %602 ], [ %619, %618 ], [ %.pn257, %1146 ], [ %.pn224.pn.pn.pn.pn, %1130 ], [ %919, %918 ], [ %908, %907 ], [ %.pn200, %891 ], [ %.pn198, %624 ], [ %659, %658 ], [ %661, %660 ], [ %.pn230, %666 ], [ %.pn240.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %872 ], [ %677, %676 ], [ %.pn236, %720 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  br label %1172

1172:                                             ; preds = %1171, %550
  %.pn259.pn.pn = phi { ptr, i32 } [ %.pn259.pn, %1171 ], [ %551, %550 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #12
  br label %1173

1173:                                             ; preds = %1172, %549, %541, %507, %499, %475, %467
  %.pn259.pn.pn.pn = phi { ptr, i32 } [ %.pn259.pn.pn, %1172 ], [ %.pn195.pn, %549 ], [ %.pn192.pn, %541 ], [ %.pn189.pn, %475 ], [ %.pn186.pn, %467 ], [ %.pn183.pn, %507 ], [ %.pn181, %499 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #12
  br label %1174

1174:                                             ; preds = %1173, %458
  %.pn259.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn259.pn.pn.pn, %1173 ], [ %459, %458 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  br label %1175

1175:                                             ; preds = %1174, %456
  %.pn259.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn259.pn.pn.pn.pn, %1174 ], [ %457, %456 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #12
  br label %1176

1176:                                             ; preds = %1175, %454
  %.pn259.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn259.pn.pn.pn.pn.pn, %1175 ], [ %455, %454 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  br label %1177

1177:                                             ; preds = %257, %262, %293, %282, %281, %263, %1176, %367, %353, %339, %334, %329, %324
  %.pn269 = phi { ptr, i32 } [ %354, %353 ], [ %.pn267, %367 ], [ %.pn259.pn.pn.pn.pn.pn.pn, %1176 ], [ %.pn169, %339 ], [ %.pn167, %334 ], [ %.pn165, %329 ], [ %.pn162.pn, %324 ], [ %.pn173, %262 ], [ %.pn171, %257 ], [ %.pn177, %293 ], [ %283, %282 ], [ %.pn175, %281 ], [ %264, %263 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  br label %1178

1178:                                             ; preds = %169, %186, %212, %1177
  %.pn269.pn = phi { ptr, i32 } [ %.pn269, %1177 ], [ %170, %169 ], [ %.pn156.pn.pn, %212 ], [ %.pn154, %186 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #12
  br label %1179

1179:                                             ; preds = %1178, %167
  %.pn269.pn.pn = phi { ptr, i32 } [ %.pn269.pn, %1178 ], [ %168, %167 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  br label %1180

1180:                                             ; preds = %1179, %155, %114
  %.pn269.pn.pn.pn = phi { ptr, i32 } [ %.pn269.pn.pn, %1179 ], [ %.pn152, %114 ], [ %.pn.pn.pn.pn.pn, %155 ]
  resume { ptr, i32 } %.pn269.pn.pn.pn

1181:                                             ; preds = %1000, %140
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_27LowRankUpdateSymMatrixSpaceEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #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 nounwind uwtable
declare dso_local noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_14SymMatrixSpaceEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #4

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

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

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__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 nounwind uwtable
declare dso_local noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(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 noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

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

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

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

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

declare void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69), double noundef, ptr noundef nonnull align 8 dereferenceable(205), double noundef, ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #5

; 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 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 @_ZN10SimTKIpopt8ConstPtrINS_6VectorEEENS_8SmartPtrIKT_EERKNS2_IS3_EE(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.21") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

declare noundef double @_ZNK10SimTKIpopt13RestoIpoptNLP3EtaEd(ptr noundef nonnull align 8 dereferenceable(312), double noundef) local_unnamed_addr #5

; 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 nounwind uwtable
declare dso_local noundef double @_ZNK10SimTKIpopt9IpoptData7curr_muEv(ptr noundef nonnull align 8 dereferenceable(864)) local_unnamed_addr #2 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

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

; 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: inlinehint mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.64") 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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.21") 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 ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6MatrixEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205)) 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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt6Vector19ElementWiseMultiplyERKS0_(ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #6 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 nounwind uwtable
declare dso_local noundef double @_ZNSt14numeric_limitsIdE7epsilonEv() local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater17CheckSkippingBFGSERNS_6VectorES2_(ptr noundef nonnull align 8 dereferenceable(424), 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 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater23StoreInternalDataBackupEv(ptr noundef nonnull align 8 dereferenceable(424)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater18UpdateInternalDataERKNS_6VectorES3_NS_8SmartPtrIS1_EE(ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef, double noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN10SimTKIpopt3MinEdd(double noundef, double noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #8

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

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

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

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt14DenseGenMatrix4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(89)) local_unnamed_addr #5

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

declare void @_ZN10SimTKIpopt14DenseGenMatrix12ScaleColumnsERKNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #5

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

declare void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef) unnamed_addr #5

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

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

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

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

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

declare void @_ZN10SimTKIpopt14DenseSymMatrix14HighRankUpdateEbdRKNS_14DenseGenMatrixEd(ptr noundef nonnull align 8 dereferenceable(97), i1 noundef zeroext, double noundef, ptr noundef nonnull align 8 dereferenceable(89), double noundef) local_unnamed_addr #5

declare void @_ZN10SimTKIpopt14DenseSymMatrix9AddMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(97), double noundef, ptr noundef nonnull align 8 dereferenceable(97), double noundef) local_unnamed_addr #5

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

declare noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(97)) local_unnamed_addr #5

declare void @_ZN10SimTKIpopt14DenseGenMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(89), double noundef) local_unnamed_addr #5

declare void @_ZNK10SimTKIpopt14DenseGenMatrix23CholeskyBackSolveMatrixEbdRS0_(ptr noundef nonnull align 8 dereferenceable(89), i1 noundef zeroext, double noundef, ptr noundef nonnull align 8 dereferenceable(89)) local_unnamed_addr #5

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

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

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

declare void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128), double noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(69), double noundef) local_unnamed_addr #5

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

declare void @_ZN10SimTKIpopt14DenseGenMatrix16AddMatrixProductEdRKS0_bS2_bd(ptr noundef nonnull align 8 dereferenceable(89), double noundef, ptr noundef nonnull align 8 dereferenceable(89), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(89), i1 noundef zeroext, double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) 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 nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #10

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

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

declare void @_ZN10SimTKIpopt14DenseSymMatrix18SpecialAddForLMSR1ERKNS_11DenseVectorERKNS_14DenseGenMatrixE(ptr noundef nonnull align 8 dereferenceable(97), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(89)) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix19ComputeEigenVectorsERKNS_14DenseSymMatrixERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(97), ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt14INTERNAL_ABORTC2ENSt7__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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdater16SplitEigenvaluesERNS_14DenseGenMatrixERKNS_11DenseVectorERNS_8SmartPtrIS1_EES8_(ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

declare void @_ZN10SimTKIpopt17MultiVectorMatrix23AddOneMultiVectorMatrixEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(128), double noundef, ptr noundef nonnull align 8 dereferenceable(128), double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_14DenseGenMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69)) local_unnamed_addr #6 align 2

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

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

declare void @_ZN10SimTKIpopt22MultiVectorMatrixSpaceC1EiRKNS_11VectorSpaceE(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrINS_22MultiVectorMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) 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: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write)
declare void @llvm.assume(i1 noundef) #11

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !18, i64 112}
!6 = !{!"_ZTSN10SimTKIpopt24LimMemQuasiNewtonUpdaterE", !7, i64 0, !19, i64 56, !10, i64 64, !20, i64 68, !21, i64 72, !22, i64 80, !10, i64 88, !22, i64 96, !22, i64 104, !18, i64 112, !22, i64 120, !23, i64 128, !10, i64 136, !23, i64 144, !22, i64 152, !18, i64 160, !10, i64 164, !10, i64 168, !24, i64 176, !24, i64 184, !24, i64 192, !25, i64 200, !26, i64 208, !27, i64 216, !22, i64 224, !24, i64 232, !24, i64 240, !28, i64 248, !18, i64 256, !24, i64 264, !28, i64 272, !23, i64 280, !23, i64 288, !29, i64 296, !29, i64 304, !10, i64 312, !24, i64 320, !24, i64 328, !24, i64 336, !25, i64 344, !26, i64 352, !27, i64 360, !22, i64 368, !24, i64 376, !24, i64 384, !28, i64 392, !18, i64 400, !24, i64 408, !28, i64 416}
!7 = !{!"_ZTSN10SimTKIpopt14HessianUpdaterE", !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 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_27LowRankUpdateSymMatrixSpaceEEE", !14, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt24LimMemQuasiNewtonUpdater12LMUpdateTypeE", !11, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt24LimMemQuasiNewtonUpdater16LMInitializationE", !11, i64 0}
!22 = !{!"double", !11, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_6VectorEEE", !14, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEE", !14, i64 0}
!25 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_11DenseVectorEEE", !14, i64 0}
!26 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEE", !14, i64 0}
!27 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_6VectorEEE", !14, i64 0}
!28 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEE", !14, i64 0}
!29 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_6MatrixEEE", !14, i64 0}
!30 = !{i8 0, i8 2}
!31 = !{}
!32 = !{!33, !33, i64 0}
!33 = !{!"vtable pointer", !12, i64 0}
!34 = !{!6, !10, i64 136}
!35 = !{!6, !22, i64 152}
!36 = !{!6, !22, i64 120}
!37 = !{!6, !18, i64 160}
!38 = !{!6, !10, i64 164}
!39 = !{!6, !10, i64 88}
!40 = !{!6, !10, i64 168}
!41 = !{!6, !18, i64 256}
!42 = !{!6, !22, i64 80}
!43 = !{!6, !20, i64 68}
!44 = !{!6, !21, i64 72}
!45 = !{!6, !22, i64 224}
!46 = !{!6, !22, i64 96}
!47 = !{!6, !10, i64 64}
!48 = !{!22, !22, i64 0}


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,MergedLoadStoreMotionPass,SROAPass,SimplifyCFGPass,TailCallElimPass