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

; 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.31" = type { ptr }
%"class.SimTKIpopt::SmartPtr.40" = type { ptr }
%"class.SimTKIpopt::SmartPtr.41" = 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.15" = type { i8 }
%"class.SimTKIpopt::FilterLSAcceptor" = type { %"class.SimTKIpopt::BacktrackingLSAcceptor.base", double, double, double, double, double, double, double, double, double, double, double, i32, double, double, i32, double, i8, i8, i32, i32, double, double, double, double, double, double, %"class.SimTKIpopt::Filter", double, i32, i32, %"class.SimTKIpopt::SmartPtr.13" }
%"class.SimTKIpopt::BacktrackingLSAcceptor.base" = type { %"class.SimTKIpopt::AlgorithmStrategyObject.base" }
%"class.SimTKIpopt::AlgorithmStrategyObject.base" = type <{ %"class.SimTKIpopt::ReferencedObject.base", [4 x i8], %"class.SimTKIpopt::SmartPtr.6", %"class.SimTKIpopt::SmartPtr.7", %"class.SimTKIpopt::SmartPtr.8", %"class.SimTKIpopt::SmartPtr.9", i8 }>
%"class.SimTKIpopt::ReferencedObject.base" = type <{ ptr, i32 }>
%"class.SimTKIpopt::SmartPtr.6" = type { ptr }
%"class.SimTKIpopt::SmartPtr.7" = type { ptr }
%"class.SimTKIpopt::SmartPtr.8" = type { ptr }
%"class.SimTKIpopt::SmartPtr.9" = type { ptr }
%"class.SimTKIpopt::Filter" = type { i32, %"class.std::__cxx11::list" }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<SimTKIpopt::FilterEntry *, std::allocator<SimTKIpopt::FilterEntry *>>::_List_impl" }
%"struct.std::__cxx11::_List_base<SimTKIpopt::FilterEntry *, std::allocator<SimTKIpopt::FilterEntry *>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.SimTKIpopt::SmartPtr.13" = type { ptr }

@.str.87 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [63 x i8], align 1
@_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.89 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [60 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: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #1

declare ptr @__cxa_begin_catch(ptr)

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_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(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49)) #3 align 2

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

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

; 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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025)) #4

; 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
define dso_local noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor24TrySecondOrderCorrectionEdRdRNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(304) %0, double noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %3) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca double, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca i32, align 4
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca %"class.SimTKIpopt::SmartPtr.31", align 8
  %16 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.SimTKIpopt::SmartPtr.31", align 8
  %20 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %21 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %22 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %23 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %24 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %25 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %26 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %27 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %28 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %29 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %30 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %31 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %32 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %33 = alloca i8, align 1
  %34 = alloca i32, align 4
  %35 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %36 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %37 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %38 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %39 = alloca ptr, align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator.15", align 1
  store ptr %0, ptr %6, align 8, !tbaa !5
  store double %1, ptr %7, align 8, !tbaa !9
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  %42 = load ptr, ptr %6, align 8
  %43 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %42, i32 0, i32 12
  %44 = load i32, ptr %43, align 8, !tbaa !11
  %45 = icmp eq i32 %44, 0
  br i1 %45, label %46, label %47

46:                                               ; preds = %4
  store i1 false, ptr %5, align 1
  br label %494

47:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #7
  store i8 0, ptr %10, align 1, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  store i32 0, ptr %11, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  store double 0.000000e+00, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %48 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
  %49 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %48)
  store double %49, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %50 = load ptr, ptr %8, align 8, !tbaa !5
  %51 = load double, ptr %50, align 8, !tbaa !9
  store double %51, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %52 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
  call void @_ZN10SimTKIpopt25IpoptCalculatedQuantities6curr_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %16, ptr noundef nonnull align 8 dereferenceable(2025) %52)
  %53 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %54 unwind label %214

54:                                               ; preds = %47
  %55 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %53)
          to label %56 unwind label %214

56:                                               ; preds = %54
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef %55)
          to label %57 unwind label %214

57:                                               ; preds = %56
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %58 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %59 unwind label %218

59:                                               ; preds = %57
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_d_minus_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %20, ptr noundef nonnull align 8 dereferenceable(2025) %58)
          to label %60 unwind label %218

60:                                               ; preds = %59
  %61 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %62 unwind label %222

62:                                               ; preds = %60
  %63 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %61)
          to label %64 unwind label %222

64:                                               ; preds = %62
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef %63)
          to label %65 unwind label %222

65:                                               ; preds = %64
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  %66 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %67 unwind label %227

67:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %68 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %69 unwind label %231

69:                                               ; preds = %67
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities6curr_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %21, ptr noundef nonnull align 8 dereferenceable(2025) %68)
          to label %70 unwind label %231

70:                                               ; preds = %69
  %71 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %72 unwind label %235

72:                                               ; preds = %70
  invoke void @_ZN10SimTKIpopt6Vector4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %66, ptr noundef nonnull align 8 dereferenceable(205) %71)
          to label %73 unwind label %235

73:                                               ; preds = %72
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  %74 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %75 unwind label %227

75:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %76 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %77 unwind label %240

77:                                               ; preds = %75
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_d_minus_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %22, ptr noundef nonnull align 8 dereferenceable(2025) %76)
          to label %78 unwind label %240

78:                                               ; preds = %77
  %79 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %80 unwind label %244

80:                                               ; preds = %78
  invoke void @_ZN10SimTKIpopt6Vector4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %74, ptr noundef nonnull align 8 dereferenceable(205) %79)
          to label %81 unwind label %244

81:                                               ; preds = %80
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %82

82:                                               ; preds = %482, %81
  %83 = load i32, ptr %11, align 4, !tbaa !32
  %84 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %42, i32 0, i32 12
  %85 = load i32, ptr %84, align 8, !tbaa !11
  %86 = icmp slt i32 %83, %85
  br i1 %86, label %87, label %102

87:                                               ; preds = %82
  %88 = load i8, ptr %10, align 1, !tbaa !31, !range !33, !noundef !34
  %89 = trunc i8 %88 to i1
  br i1 %89, label %102, label %90

90:                                               ; preds = %87
  %91 = load i32, ptr %11, align 4, !tbaa !32
  %92 = icmp eq i32 %91, 0
  br i1 %92, label %100, label %93

93:                                               ; preds = %90
  %94 = load double, ptr %13, align 8, !tbaa !9
  %95 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %42, i32 0, i32 13
  %96 = load double, ptr %95, align 8, !tbaa !35
  %97 = load double, ptr %12, align 8, !tbaa !9
  %98 = fmul double %96, %97
  %99 = fcmp ole double %94, %98
  br label %100

100:                                              ; preds = %93, %90
  %101 = phi i1 [ true, %90 ], [ %99, %93 ]
  br label %102

102:                                              ; preds = %100, %87, %82
  %103 = phi i1 [ false, %87 ], [ false, %82 ], [ %101, %100 ]
  br i1 %103, label %104, label %487

104:                                              ; preds = %102
  %105 = load double, ptr %13, align 8, !tbaa !9
  store double %105, ptr %12, align 8, !tbaa !9
  %106 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %107 unwind label %227

107:                                              ; preds = %104
  %108 = load i32, ptr %11, align 4, !tbaa !32
  %109 = add nsw i32 %108, 1
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %106, i32 noundef 5, i32 noundef 8, ptr noundef @.str.87, i32 noundef %109)
          to label %110 unwind label %227

110:                                              ; preds = %107
  %111 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %112 unwind label %227

112:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %113 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %114 unwind label %249

114:                                              ; preds = %112
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities7trial_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %23, ptr noundef nonnull align 8 dereferenceable(2025) %113)
          to label %115 unwind label %249

115:                                              ; preds = %114
  %116 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %117 unwind label %253

117:                                              ; preds = %115
  %118 = load double, ptr %14, align 8, !tbaa !9
  invoke void @_ZN10SimTKIpopt6Vector12AddOneVectorEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(205) %111, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %116, double noundef %118)
          to label %119 unwind label %253

119:                                              ; preds = %117
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  %120 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %121 unwind label %227

121:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %122 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %123 unwind label %258

123:                                              ; preds = %121
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_d_minus_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %24, ptr noundef nonnull align 8 dereferenceable(2025) %122)
          to label %124 unwind label %258

124:                                              ; preds = %123
  %125 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %126 unwind label %262

126:                                              ; preds = %124
  %127 = load double, ptr %14, align 8, !tbaa !9
  invoke void @_ZN10SimTKIpopt6Vector12AddOneVectorEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(205) %120, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %125, double noundef %127)
          to label %128 unwind label %262

128:                                              ; preds = %126
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %129 = load ptr, ptr %9, align 8, !tbaa !5
  %130 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %129)
          to label %131 unwind label %267

131:                                              ; preds = %128
  invoke void @_ZNK10SimTKIpopt14IteratesVector21MakeNewIteratesVectorEb(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.41") align 8 %25, ptr noundef nonnull align 8 dereferenceable(280) %130, i1 noundef zeroext true)
          to label %132 unwind label %267

132:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %133 = load ptr, ptr %9, align 8, !tbaa !5
  %134 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %133)
          to label %135 unwind label %271

135:                                              ; preds = %132
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.41") align 8 %26, ptr noundef nonnull align 8 dereferenceable(280) %134)
          to label %136 unwind label %271

136:                                              ; preds = %135
  %137 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %138 unwind label %275

138:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %139 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %140 unwind label %279

140:                                              ; preds = %138
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities28curr_grad_lag_with_damping_xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %27, ptr noundef nonnull align 8 dereferenceable(2025) %139)
          to label %141 unwind label %279

141:                                              ; preds = %140
  %142 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %143 unwind label %283

143:                                              ; preds = %141
  invoke void @_ZN10SimTKIpopt14IteratesVector5Set_xERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %137, ptr noundef nonnull align 8 dereferenceable(205) %142)
          to label %144 unwind label %283

144:                                              ; preds = %143
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  %145 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %146 unwind label %275

146:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %147 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %148 unwind label %288

148:                                              ; preds = %146
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities28curr_grad_lag_with_damping_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %28, ptr noundef nonnull align 8 dereferenceable(2025) %147)
          to label %149 unwind label %288

149:                                              ; preds = %148
  %150 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %151 unwind label %292

151:                                              ; preds = %149
  invoke void @_ZN10SimTKIpopt14IteratesVector5Set_sERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %145, ptr noundef nonnull align 8 dereferenceable(205) %150)
          to label %152 unwind label %292

152:                                              ; preds = %151
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  %153 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %154 unwind label %275

154:                                              ; preds = %152
  %155 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %156 unwind label %275

156:                                              ; preds = %154
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_y_cERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %153, ptr noundef nonnull align 8 dereferenceable(205) %155)
          to label %157 unwind label %275

157:                                              ; preds = %156
  %158 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %159 unwind label %275

159:                                              ; preds = %157
  %160 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %161 unwind label %275

161:                                              ; preds = %159
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_y_dERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %158, ptr noundef nonnull align 8 dereferenceable(205) %160)
          to label %162 unwind label %275

162:                                              ; preds = %161
  %163 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %164 unwind label %275

164:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %165 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %166 unwind label %297

166:                                              ; preds = %164
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_x_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %29, ptr noundef nonnull align 8 dereferenceable(2025) %165)
          to label %167 unwind label %297

167:                                              ; preds = %166
  %168 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %169 unwind label %301

169:                                              ; preds = %167
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_z_LERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %163, ptr noundef nonnull align 8 dereferenceable(205) %168)
          to label %170 unwind label %301

170:                                              ; preds = %169
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  %171 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %172 unwind label %275

172:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %173 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %174 unwind label %306

174:                                              ; preds = %172
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_x_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %30, ptr noundef nonnull align 8 dereferenceable(2025) %173)
          to label %175 unwind label %306

175:                                              ; preds = %174
  %176 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %177 unwind label %310

177:                                              ; preds = %175
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_z_UERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %171, ptr noundef nonnull align 8 dereferenceable(205) %176)
          to label %178 unwind label %310

178:                                              ; preds = %177
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  %179 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %180 unwind label %275

180:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %181 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %182 unwind label %315

182:                                              ; preds = %180
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_s_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %31, ptr noundef nonnull align 8 dereferenceable(2025) %181)
          to label %183 unwind label %315

183:                                              ; preds = %182
  %184 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %185 unwind label %319

185:                                              ; preds = %183
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_v_LERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %179, ptr noundef nonnull align 8 dereferenceable(205) %184)
          to label %186 unwind label %319

186:                                              ; preds = %185
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  %187 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %188 unwind label %275

188:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %189 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %190 unwind label %324

190:                                              ; preds = %188
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_s_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %32, ptr noundef nonnull align 8 dereferenceable(2025) %189)
          to label %191 unwind label %324

191:                                              ; preds = %190
  %192 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %193 unwind label %328

193:                                              ; preds = %191
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_v_UERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %187, ptr noundef nonnull align 8 dereferenceable(205) %192)
          to label %194 unwind label %328

194:                                              ; preds = %193
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #7
  %195 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %42, i32 0, i32 31
  %196 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %195)
          to label %197 unwind label %333

197:                                              ; preds = %194
  %198 = invoke noundef nonnull align 8 dereferenceable(280) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %199 unwind label %333

199:                                              ; preds = %197
  %200 = invoke noundef nonnull align 8 dereferenceable(280) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %201 unwind label %333

201:                                              ; preds = %199
  %202 = load ptr, ptr %196, align 8, !tbaa !36
  %203 = getelementptr inbounds ptr, ptr %202, i64 3
  %204 = load ptr, ptr %203, align 8
  %205 = invoke noundef zeroext i1 %204(ptr noundef nonnull align 8 dereferenceable(49) %196, double noundef -1.000000e+00, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(280) %198, ptr noundef nonnull align 8 dereferenceable(280) %200, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %206 unwind label %333

206:                                              ; preds = %201
  %207 = zext i1 %205 to i8
  store i8 %207, ptr %33, align 1, !tbaa !31
  %208 = load i8, ptr %33, align 1, !tbaa !31, !range !33, !noundef !34
  %209 = trunc i8 %208 to i1
  br i1 %209, label %337, label %210

210:                                              ; preds = %206
  %211 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %212 unwind label %333

212:                                              ; preds = %210
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %211, i32 noundef 5, i32 noundef 8, ptr noundef @.str.88)
          to label %213 unwind label %333

213:                                              ; preds = %212
  store i1 false, ptr %5, align 1
  store i32 1, ptr %34, align 4
  br label %480

214:                                              ; preds = %56, %54, %47
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %17, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  br label %493

218:                                              ; preds = %59, %57
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %17, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %18, align 4
  br label %226

222:                                              ; preds = %64, %62, %60
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %17, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br label %226

226:                                              ; preds = %222, %218
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %492

227:                                              ; preds = %119, %110, %107, %104, %73, %65
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %17, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %18, align 4
  br label %491

231:                                              ; preds = %69, %67
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %17, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %18, align 4
  br label %239

235:                                              ; preds = %72, %70
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %17, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br label %239

239:                                              ; preds = %235, %231
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %491

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

244:                                              ; preds = %80, %78
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %17, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  br label %248

248:                                              ; preds = %244, %240
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %491

249:                                              ; preds = %114, %112
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %17, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %18, align 4
  br label %257

253:                                              ; preds = %117, %115
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %17, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  br label %257

257:                                              ; preds = %253, %249
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %491

258:                                              ; preds = %123, %121
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %17, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %18, align 4
  br label %266

262:                                              ; preds = %126, %124
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %17, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  br label %266

266:                                              ; preds = %262, %258
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %491

267:                                              ; preds = %131, %128
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %17, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %18, align 4
  br label %486

271:                                              ; preds = %135, %132
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %17, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %18, align 4
  br label %485

275:                                              ; preds = %186, %178, %170, %162, %161, %159, %157, %156, %154, %152, %144, %136
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %17, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %18, align 4
  br label %484

279:                                              ; preds = %140, %138
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %17, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %18, align 4
  br label %287

283:                                              ; preds = %143, %141
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %17, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  br label %287

287:                                              ; preds = %283, %279
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %484

288:                                              ; preds = %148, %146
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %17, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %18, align 4
  br label %296

292:                                              ; preds = %151, %149
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %17, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br label %296

296:                                              ; preds = %292, %288
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %484

297:                                              ; preds = %166, %164
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %17, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %18, align 4
  br label %305

301:                                              ; preds = %169, %167
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %17, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  br label %305

305:                                              ; preds = %301, %297
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  br label %484

306:                                              ; preds = %174, %172
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %17, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %18, align 4
  br label %314

310:                                              ; preds = %177, %175
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %17, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br label %314

314:                                              ; preds = %310, %306
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  br label %484

315:                                              ; preds = %182, %180
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %17, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %18, align 4
  br label %323

319:                                              ; preds = %185, %183
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %17, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #7
  br label %323

323:                                              ; preds = %319, %315
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %484

324:                                              ; preds = %190, %188
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %17, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %18, align 4
  br label %332

328:                                              ; preds = %193, %191
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %17, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #7
  br label %332

332:                                              ; preds = %328, %324
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %484

333:                                              ; preds = %476, %472, %466, %463, %461, %341, %339, %337, %212, %210, %201, %199, %197, %194
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %17, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %18, align 4
  br label %483

337:                                              ; preds = %206
  %338 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %339 unwind label %333

339:                                              ; preds = %337
  %340 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %341 unwind label %333

341:                                              ; preds = %339
  %342 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData8curr_tauEv(ptr noundef nonnull align 8 dereferenceable(864) %340)
          to label %343 unwind label %333

343:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %344 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %345 unwind label %377

345:                                              ; preds = %343
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %35, ptr noundef nonnull align 8 dereferenceable(280) %344)
          to label %346 unwind label %377

346:                                              ; preds = %345
  %347 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %348 unwind label %381

348:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %349 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %350 unwind label %385

350:                                              ; preds = %348
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %36, ptr noundef nonnull align 8 dereferenceable(280) %349)
          to label %351 unwind label %385

351:                                              ; preds = %350
  %352 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %353 unwind label %389

353:                                              ; preds = %351
  %354 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities24primal_frac_to_the_boundEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(2025) %338, double noundef %342, ptr noundef nonnull align 8 dereferenceable(205) %347, ptr noundef nonnull align 8 dereferenceable(205) %352)
          to label %355 unwind label %389

355:                                              ; preds = %353
  store double %354, ptr %14, align 8, !tbaa !9
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  %356 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %357 unwind label %396

357:                                              ; preds = %355
  %358 = load double, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  %359 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %360 unwind label %400

360:                                              ; preds = %357
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %37, ptr noundef nonnull align 8 dereferenceable(280) %359)
          to label %361 unwind label %400

361:                                              ; preds = %360
  %362 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %363 unwind label %404

363:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %364 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %365 unwind label %408

365:                                              ; preds = %363
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %38, ptr noundef nonnull align 8 dereferenceable(280) %364)
          to label %366 unwind label %408

366:                                              ; preds = %365
  %367 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %368 unwind label %412

368:                                              ; preds = %366
  invoke void @_ZN10SimTKIpopt9IpoptData31SetTrialPrimalVariablesFromStepEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(864) %356, double noundef %358, ptr noundef nonnull align 8 dereferenceable(205) %362, ptr noundef nonnull align 8 dereferenceable(205) %367)
          to label %369 unwind label %412

369:                                              ; preds = %368
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  %370 = load double, ptr %7, align 8, !tbaa !9
  %371 = load ptr, ptr %42, align 8, !tbaa !36
  %372 = getelementptr inbounds ptr, ptr %371, i64 7
  %373 = load ptr, ptr %372, align 8
  %374 = invoke noundef zeroext i1 %373(ptr noundef nonnull align 8 dereferenceable(304) %42, double noundef %370)
          to label %375 unwind label %396

375:                                              ; preds = %369
  %376 = zext i1 %374 to i8
  store i8 %376, ptr %10, align 1, !tbaa !31
  br label %458

377:                                              ; preds = %345, %343
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %17, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %18, align 4
  br label %395

381:                                              ; preds = %346
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %17, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %18, align 4
  br label %394

385:                                              ; preds = %350, %348
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %17, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %18, align 4
  br label %393

389:                                              ; preds = %353, %351
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %17, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  br label %393

393:                                              ; preds = %389, %385
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %394

394:                                              ; preds = %393, %381
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #7
  br label %395

395:                                              ; preds = %394, %377
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  br label %483

396:                                              ; preds = %369, %355
  %397 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %17, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %18, align 4
  br label %419

400:                                              ; preds = %360, %357
  %401 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %17, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %18, align 4
  br label %418

404:                                              ; preds = %361
  %405 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %17, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %18, align 4
  br label %417

408:                                              ; preds = %365, %363
  %409 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %17, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %18, align 4
  br label %416

412:                                              ; preds = %368, %366
  %413 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %17, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %18, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #7
  br label %416

416:                                              ; preds = %412, %408
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %417

417:                                              ; preds = %416, %404
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #7
  br label %418

418:                                              ; preds = %417, %400
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  br label %419

419:                                              ; preds = %418, %396
  %420 = load i32, ptr %18, align 4
  %421 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE) #7
  %422 = icmp eq i32 %420, %421
  br i1 %422, label %423, label %483

423:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  %424 = load ptr, ptr %17, align 8
  %425 = call ptr @__cxa_begin_catch(ptr %424) #7
  store ptr %425, ptr %39, align 8
  %426 = load ptr, ptr %39, align 8, !tbaa !5
  %427 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %428 unwind label %437

428:                                              ; preds = %423
  invoke void @_ZNK10SimTKIpopt14IpoptException15ReportExceptionERKNS_10JournalistENS_13EJournalLevelE(ptr noundef nonnull align 8 dereferenceable(112) %426, ptr noundef nonnull align 8 dereferenceable(40) %427, i32 noundef 5)
          to label %429 unwind label %437

429:                                              ; preds = %428
  %430 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %431 unwind label %437

431:                                              ; preds = %429
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %430, i32 noundef 2, i32 noundef 2, ptr noundef @.str.89)
          to label %432 unwind label %437

432:                                              ; preds = %431
  %433 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %434 unwind label %437

434:                                              ; preds = %432
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %435 unwind label %441

435:                                              ; preds = %434
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %433, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %436 unwind label %445

436:                                              ; preds = %435
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  store i8 0, ptr %10, align 1, !tbaa !31
  store i32 3, ptr %34, align 4
  invoke void @__cxa_end_catch()
          to label %450 unwind label %451

437:                                              ; preds = %432, %431, %429, %428, %423
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %17, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %18, align 4
  br label %455

441:                                              ; preds = %434
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %17, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %18, align 4
  br label %449

445:                                              ; preds = %435
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %17, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %449

449:                                              ; preds = %445, %441
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  br label %455

450:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  br label %480

451:                                              ; preds = %436
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %17, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %18, align 4
  br label %457

455:                                              ; preds = %449, %437
  invoke void @__cxa_end_catch()
          to label %456 unwind label %501

456:                                              ; preds = %455
  br label %457

457:                                              ; preds = %456, %451
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  br label %483

458:                                              ; preds = %375
  %459 = load i8, ptr %10, align 1, !tbaa !31, !range !33, !noundef !34
  %460 = trunc i8 %459 to i1
  br i1 %460, label %461, label %472

461:                                              ; preds = %458
  %462 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %463 unwind label %333

463:                                              ; preds = %461
  %464 = load i32, ptr %11, align 4, !tbaa !32
  %465 = add nsw i32 %464, 1
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %462, i32 noundef 5, i32 noundef 8, ptr noundef @.str.91, i32 noundef %465)
          to label %466 unwind label %333

466:                                              ; preds = %463
  %467 = load double, ptr %14, align 8, !tbaa !9
  %468 = load ptr, ptr %8, align 8, !tbaa !5
  store double %467, ptr %468, align 8, !tbaa !9
  %469 = load ptr, ptr %9, align 8, !tbaa !5
  %470 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %469, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %471 unwind label %333

471:                                              ; preds = %466
  br label %479

472:                                              ; preds = %458
  %473 = load i32, ptr %11, align 4, !tbaa !32
  %474 = add nsw i32 %473, 1
  store i32 %474, ptr %11, align 4, !tbaa !32
  %475 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %42)
          to label %476 unwind label %333

476:                                              ; preds = %472
  %477 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %475)
          to label %478 unwind label %333

478:                                              ; preds = %476
  store double %477, ptr %13, align 8, !tbaa !9
  br label %479

479:                                              ; preds = %478, %471
  store i32 0, ptr %34, align 4
  br label %480

480:                                              ; preds = %479, %450, %213
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  %481 = load i32, ptr %34, align 4
  switch i32 %481, label %490 [
    i32 0, label %482
    i32 3, label %487
  ]

482:                                              ; preds = %480
  br label %82, !llvm.loop !38

483:                                              ; preds = %457, %419, %395, %333
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  br label %484

484:                                              ; preds = %483, %332, %323, %314, %305, %296, %287, %275
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br label %485

485:                                              ; preds = %484, %271
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  br label %486

486:                                              ; preds = %485, %267
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  br label %491

487:                                              ; preds = %480, %102
  %488 = load i8, ptr %10, align 1, !tbaa !31, !range !33, !noundef !34
  %489 = trunc i8 %488 to i1
  store i1 %489, ptr %5, align 1
  store i32 1, ptr %34, align 4
  br label %490

490:                                              ; preds = %487, %480
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #7
  br label %494

491:                                              ; preds = %486, %266, %257, %248, %239, %227
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br label %492

492:                                              ; preds = %491, %226
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  br label %493

493:                                              ; preds = %492, %214
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #7
  br label %496

494:                                              ; preds = %490, %46
  %495 = load i1, ptr %5, align 1
  ret i1 %495

496:                                              ; preds = %493
  %497 = load ptr, ptr %17, align 8
  %498 = load i32, ptr %18, align 4
  %499 = insertvalue { ptr, i32 } poison, ptr %497, 0
  %500 = insertvalue { ptr, i32 } %499, i32 %498, 1
  resume { ptr, i32 } %500

501:                                              ; preds = %455
  %502 = landingpad { ptr, i32 }
          catch ptr null
  %503 = extractvalue { ptr, i32 } %502, 0
  call void @__clang_call_terminate(ptr %503) #8
  unreachable
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205)) #5 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 void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

; 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 @_ZN10SimTKIpopt6Vector4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) #5 align 2

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

; Function Attrs: 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) #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities24primal_frac_to_the_boundEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(2025), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) #4

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

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

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

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

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

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

declare void @__cxa_end_catch()

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

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

; Function Attrs: 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 @_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 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind memory(none) }
attributes #7 = { nounwind }
attributes #8 = { noreturn 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, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !16, i64 144}
!12 = !{!"_ZTSN10SimTKIpopt16FilterLSAcceptorE", !13, i64 0, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !16, i64 144, !10, i64 152, !10, i64 160, !22, i64 168, !10, i64 176, !21, i64 184, !21, i64 185, !16, i64 188, !16, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !10, i64 224, !10, i64 232, !10, i64 240, !23, i64 248, !10, i64 280, !16, i64 288, !16, i64 292, !30, i64 296}
!13 = !{!"_ZTSN10SimTKIpopt22BacktrackingLSAcceptorE", !14, i64 0}
!14 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !15, i64 0, !17, i64 16, !18, i64 24, !19, i64 32, !20, i64 40, !21, i64 48}
!15 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !16, i64 8}
!16 = !{!"int", !7, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!18 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !6, i64 0}
!19 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !6, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !6, i64 0}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt16FilterLSAcceptor17CorrectorTypeEnumE", !7, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt6FilterE", !16, i64 0, !24, i64 8}
!24 = !{!"_ZTSNSt7__cxx114listIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !25, i64 0}
!25 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !26, i64 0}
!26 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EE10_List_implE", !27, i64 0}
!27 = !{!"_ZTSNSt8__detail17_List_node_headerE", !28, i64 0, !29, i64 16}
!28 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!29 = !{!"long", !7, i64 0}
!30 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEE", !6, i64 0}
!31 = !{!21, !21, i64 0}
!32 = !{!16, !16, i64 0}
!33 = !{i8 0, i8 2}
!34 = !{}
!35 = !{!12, !10, i64 152}
!36 = !{!37, !37, i64 0}
!37 = !{!"vtable pointer", !8, i64 0}
!38 = distinct !{!38, !39}
!39 = !{!"llvm.loop.mustprogress"}


; 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.31" = type { ptr }
%"class.SimTKIpopt::SmartPtr.40" = type { ptr }
%"class.SimTKIpopt::SmartPtr.41" = 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.15" = type { i8 }

@.str.87 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [63 x i8], align 1
@_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.89 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [60 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: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #1

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_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(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(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 #4

; 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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

; 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
define dso_local noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor24TrySecondOrderCorrectionEdRdRNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(304) %0, double noundef %1, ptr nocapture noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %3) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.SimTKIpopt::SmartPtr.31", align 8
  %6 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %7 = alloca %"class.SimTKIpopt::SmartPtr.31", align 8
  %8 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %9 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %10 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %11 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %12 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %13 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %14 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %15 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %16 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %17 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %18 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %19 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %20 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %21 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %22 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %23 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %24 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.15", align 1
  %27 = getelementptr inbounds i8, ptr %0, i64 144
  %28 = load i32, ptr %27, align 8, !tbaa !5
  %29 = icmp eq i32 %28, 0
  br i1 %29, label %312, label %30

30:                                               ; preds = %4
  %31 = tail call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %32 = tail call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %31)
  %33 = load double, ptr %2, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  %34 = tail call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZN10SimTKIpopt25IpoptCalculatedQuantities6curr_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %6, ptr noundef nonnull align 8 dereferenceable(2025) %34)
  %35 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %36 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %35)
          to label %37 unwind label %141

37:                                               ; preds = %30
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef %36)
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  %38 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %39 unwind label %145

39:                                               ; preds = %37
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_d_minus_sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %8, ptr noundef nonnull align 8 dereferenceable(2025) %38)
          to label %40 unwind label %145

40:                                               ; preds = %39
  %41 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
  %42 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %41)
          to label %43 unwind label %147

43:                                               ; preds = %40
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %42)
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  %44 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %45 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %46 unwind label %154

46:                                               ; preds = %43
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities6curr_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %9, ptr noundef nonnull align 8 dereferenceable(2025) %45)
          to label %47 unwind label %154

47:                                               ; preds = %46
  %48 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
  invoke void @_ZN10SimTKIpopt6Vector4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %44, ptr noundef nonnull align 8 dereferenceable(205) %48)
          to label %49 unwind label %156

49:                                               ; preds = %47
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  %50 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %51 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %52 unwind label %159

52:                                               ; preds = %49
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_d_minus_sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %10, ptr noundef nonnull align 8 dereferenceable(2025) %51)
          to label %53 unwind label %159

53:                                               ; preds = %52
  %54 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
  invoke void @_ZN10SimTKIpopt6Vector4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %50, ptr noundef nonnull align 8 dereferenceable(205) %54)
          to label %55 unwind label %161

55:                                               ; preds = %53
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  %56 = load i32, ptr %27, align 8, !tbaa !5
  %57 = icmp sgt i32 %56, 0
  br i1 %57, label %.lr.ph, label %.critedge

.lr.ph:                                           ; preds = %55
  %58 = getelementptr inbounds i8, ptr %0, i64 152
  %59 = getelementptr inbounds i8, ptr %0, i64 296
  br label %60

60:                                               ; preds = %.lr.ph, %300
  %.032152 = phi i8 [ 0, %.lr.ph ], [ %.133, %300 ]
  %.065151 = phi double [ %33, %.lr.ph ], [ %231, %300 ]
  %.067150 = phi double [ %32, %.lr.ph ], [ %.269, %300 ]
  %.070149 = phi double [ 0.000000e+00, %.lr.ph ], [ %.067150, %300 ]
  %.071148 = phi i32 [ 0, %.lr.ph ], [ %.273, %300 ]
  %61 = trunc nuw i8 %.032152 to i1
  br i1 %61, label %.critedge.loopexit, label %62

62:                                               ; preds = %60
  %63 = icmp eq i32 %.071148, 0
  br i1 %63, label %.critedge2, label %64

64:                                               ; preds = %62
  %65 = load double, ptr %58, align 8, !tbaa !30
  %66 = fmul double %.070149, %65
  %67 = fcmp ugt double %.067150, %66
  br i1 %67, label %.critedge.loopexit, label %.critedge2

.critedge2:                                       ; preds = %62, %64
  %68 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %69 unwind label %150

69:                                               ; preds = %.critedge2
  %70 = add nsw i32 %.071148, 1
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %68, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.87, i32 noundef %70)
          to label %71 unwind label %150

71:                                               ; preds = %69
  %72 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  %73 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %74 unwind label %164

74:                                               ; preds = %71
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities7trial_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %11, ptr noundef nonnull align 8 dereferenceable(2025) %73)
          to label %75 unwind label %164

75:                                               ; preds = %74
  %76 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
  invoke void @_ZN10SimTKIpopt6Vector12AddOneVectorEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(205) %72, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %76, double noundef %.065151)
          to label %77 unwind label %166

77:                                               ; preds = %75
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  %78 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %79 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %80 unwind label %169

80:                                               ; preds = %77
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_d_minus_sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %12, ptr noundef nonnull align 8 dereferenceable(2025) %79)
          to label %81 unwind label %169

81:                                               ; preds = %80
  %82 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
  invoke void @_ZN10SimTKIpopt6Vector12AddOneVectorEdRKS0_d(ptr noundef nonnull align 8 dereferenceable(205) %78, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %82, double noundef %.065151)
          to label %83 unwind label %171

83:                                               ; preds = %81
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %84 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector21MakeNewIteratesVectorEb(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.41") align 8 %13, ptr noundef nonnull align 8 dereferenceable(280) %84, i1 noundef zeroext true)
          to label %85 unwind label %174

85:                                               ; preds = %83
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %86 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.41") align 8 %14, ptr noundef nonnull align 8 dereferenceable(280) %86)
          to label %87 unwind label %178

87:                                               ; preds = %85
  %88 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  %89 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %90 unwind label %186

90:                                               ; preds = %87
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities28curr_grad_lag_with_damping_xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %15, ptr noundef nonnull align 8 dereferenceable(2025) %89)
          to label %91 unwind label %186

91:                                               ; preds = %90
  %92 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
  invoke void @_ZN10SimTKIpopt14IteratesVector5Set_xERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %88, ptr noundef nonnull align 8 dereferenceable(205) %92)
          to label %93 unwind label %188

93:                                               ; preds = %91
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  %94 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %95 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %96 unwind label %191

96:                                               ; preds = %93
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities28curr_grad_lag_with_damping_sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %16, ptr noundef nonnull align 8 dereferenceable(2025) %95)
          to label %97 unwind label %191

97:                                               ; preds = %96
  %98 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
  invoke void @_ZN10SimTKIpopt14IteratesVector5Set_sERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %94, ptr noundef nonnull align 8 dereferenceable(205) %98)
          to label %99 unwind label %193

99:                                               ; preds = %97
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  %100 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  %101 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_y_cERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %100, ptr noundef nonnull align 8 dereferenceable(205) %101)
          to label %102 unwind label %182

102:                                              ; preds = %99
  %103 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  %104 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_y_dERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %103, ptr noundef nonnull align 8 dereferenceable(205) %104)
          to label %105 unwind label %182

105:                                              ; preds = %102
  %106 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  %107 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %108 unwind label %196

108:                                              ; preds = %105
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_x_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %17, ptr noundef nonnull align 8 dereferenceable(2025) %107)
          to label %109 unwind label %196

109:                                              ; preds = %108
  %110 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_z_LERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %106, ptr noundef nonnull align 8 dereferenceable(205) %110)
          to label %111 unwind label %198

111:                                              ; preds = %109
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  %112 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  %113 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %114 unwind label %201

114:                                              ; preds = %111
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_x_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %18, ptr noundef nonnull align 8 dereferenceable(2025) %113)
          to label %115 unwind label %201

115:                                              ; preds = %114
  %116 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_z_UERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %112, ptr noundef nonnull align 8 dereferenceable(205) %116)
          to label %117 unwind label %203

117:                                              ; preds = %115
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  %118 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  %119 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %120 unwind label %206

120:                                              ; preds = %117
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_s_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %19, ptr noundef nonnull align 8 dereferenceable(2025) %119)
          to label %121 unwind label %206

121:                                              ; preds = %120
  %122 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_v_LERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %118, ptr noundef nonnull align 8 dereferenceable(205) %122)
          to label %123 unwind label %208

123:                                              ; preds = %121
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  %124 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %125 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %126 unwind label %211

126:                                              ; preds = %123
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_s_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %20, ptr noundef nonnull align 8 dereferenceable(2025) %125)
          to label %127 unwind label %211

127:                                              ; preds = %126
  %128 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_v_UERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %124, ptr noundef nonnull align 8 dereferenceable(205) %128)
          to label %129 unwind label %213

129:                                              ; preds = %127
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  %130 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %59)
  %131 = call noundef nonnull align 8 dereferenceable(280) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  %132 = call noundef nonnull align 8 dereferenceable(280) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %133 = load ptr, ptr %130, align 8, !tbaa !31
  %134 = getelementptr inbounds i8, ptr %133, i64 24
  %135 = load ptr, ptr %134, align 8
  %136 = invoke noundef zeroext i1 %135(ptr noundef nonnull align 8 dereferenceable(49) %130, double noundef -1.000000e+00, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(280) %131, ptr noundef nonnull align 8 dereferenceable(280) %132, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %137 unwind label %.loopexit

137:                                              ; preds = %129
  br i1 %136, label %219, label %138

138:                                              ; preds = %137
  %139 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %140 unwind label %.loopexit.split-lp

140:                                              ; preds = %138
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %139, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.88)
          to label %.thread unwind label %.loopexit.split-lp

.thread:                                          ; preds = %140
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %.critedge

141:                                              ; preds = %30
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  %144 = extractvalue { ptr, i32 } %142, 1
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  br label %309

145:                                              ; preds = %39, %37
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %149

147:                                              ; preds = %40
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  br label %149

149:                                              ; preds = %147, %145
  %.pn = phi { ptr, i32 } [ %148, %147 ], [ %146, %145 ]
  %.035 = extractvalue { ptr, i32 } %.pn, 1
  %.039 = extractvalue { ptr, i32 } %.pn, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  br label %308

150:                                              ; preds = %69, %.critedge2
  %151 = landingpad { ptr, i32 }
          cleanup
  %152 = extractvalue { ptr, i32 } %151, 0
  %153 = extractvalue { ptr, i32 } %151, 1
  br label %307

154:                                              ; preds = %46, %43
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %158

156:                                              ; preds = %47
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  br label %158

158:                                              ; preds = %156, %154
  %.pn75 = phi { ptr, i32 } [ %157, %156 ], [ %155, %154 ]
  %.136 = extractvalue { ptr, i32 } %.pn75, 1
  %.140 = extractvalue { ptr, i32 } %.pn75, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %307

159:                                              ; preds = %52, %49
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %163

161:                                              ; preds = %53
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br label %163

163:                                              ; preds = %161, %159
  %.pn77 = phi { ptr, i32 } [ %162, %161 ], [ %160, %159 ]
  %.237 = extractvalue { ptr, i32 } %.pn77, 1
  %.241 = extractvalue { ptr, i32 } %.pn77, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  br label %307

164:                                              ; preds = %74, %71
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %168

166:                                              ; preds = %75
  %167 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  br label %168

168:                                              ; preds = %166, %164
  %.pn79 = phi { ptr, i32 } [ %167, %166 ], [ %165, %164 ]
  %.338 = extractvalue { ptr, i32 } %.pn79, 1
  %.342 = extractvalue { ptr, i32 } %.pn79, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  br label %307

169:                                              ; preds = %80, %77
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %173

171:                                              ; preds = %81
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  br label %173

173:                                              ; preds = %171, %169
  %.pn81 = phi { ptr, i32 } [ %172, %171 ], [ %170, %169 ]
  %.4 = extractvalue { ptr, i32 } %.pn81, 1
  %.443 = extractvalue { ptr, i32 } %.pn81, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br label %307

174:                                              ; preds = %83
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  %177 = extractvalue { ptr, i32 } %175, 1
  br label %305

178:                                              ; preds = %85
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  %181 = extractvalue { ptr, i32 } %179, 1
  br label %304

182:                                              ; preds = %102, %99
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  %185 = extractvalue { ptr, i32 } %183, 1
  br label %303

186:                                              ; preds = %90, %87
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %190

188:                                              ; preds = %91
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  br label %190

190:                                              ; preds = %188, %186
  %.pn83 = phi { ptr, i32 } [ %189, %188 ], [ %187, %186 ]
  %.5 = extractvalue { ptr, i32 } %.pn83, 1
  %.544 = extractvalue { ptr, i32 } %.pn83, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %303

191:                                              ; preds = %96, %93
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %195

193:                                              ; preds = %97
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  br label %195

195:                                              ; preds = %193, %191
  %.pn85 = phi { ptr, i32 } [ %194, %193 ], [ %192, %191 ]
  %.6 = extractvalue { ptr, i32 } %.pn85, 1
  %.645 = extractvalue { ptr, i32 } %.pn85, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  br label %303

196:                                              ; preds = %108, %105
  %197 = landingpad { ptr, i32 }
          cleanup
  br label %200

198:                                              ; preds = %109
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br label %200

200:                                              ; preds = %198, %196
  %.pn87 = phi { ptr, i32 } [ %199, %198 ], [ %197, %196 ]
  %.7 = extractvalue { ptr, i32 } %.pn87, 1
  %.746 = extractvalue { ptr, i32 } %.pn87, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  br label %303

201:                                              ; preds = %114, %111
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %205

203:                                              ; preds = %115
  %204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  br label %205

205:                                              ; preds = %203, %201
  %.pn89 = phi { ptr, i32 } [ %204, %203 ], [ %202, %201 ]
  %.8 = extractvalue { ptr, i32 } %.pn89, 1
  %.847 = extractvalue { ptr, i32 } %.pn89, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  br label %303

206:                                              ; preds = %120, %117
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %210

208:                                              ; preds = %121
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br label %210

210:                                              ; preds = %208, %206
  %.pn91 = phi { ptr, i32 } [ %209, %208 ], [ %207, %206 ]
  %.9 = extractvalue { ptr, i32 } %.pn91, 1
  %.948 = extractvalue { ptr, i32 } %.pn91, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  br label %303

211:                                              ; preds = %126, %123
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %215

213:                                              ; preds = %127
  %214 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br label %215

215:                                              ; preds = %213, %211
  %.pn93 = phi { ptr, i32 } [ %214, %213 ], [ %212, %211 ]
  %.10 = extractvalue { ptr, i32 } %.pn93, 1
  %.1049 = extractvalue { ptr, i32 } %.pn93, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  br label %303

.loopexit:                                        ; preds = %129, %219, %221, %291, %293, %294, %296, %298
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %216

.loopexit.split-lp:                               ; preds = %138, %140
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %216

216:                                              ; preds = %.loopexit.split-lp, %.loopexit
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  %217 = extractvalue { ptr, i32 } %lpad.phi, 0
  %218 = extractvalue { ptr, i32 } %lpad.phi, 1
  br label %303

219:                                              ; preds = %137
  %220 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %221 unwind label %.loopexit

221:                                              ; preds = %219
  %222 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %223 unwind label %.loopexit

223:                                              ; preds = %221
  %224 = call noundef double @_ZNK10SimTKIpopt9IpoptData8curr_tauEv(ptr noundef nonnull align 8 dereferenceable(864) %222)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  %225 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %21, ptr noundef nonnull align 8 dereferenceable(280) %225)
          to label %226 unwind label %247

226:                                              ; preds = %223
  %227 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #7
  %228 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %22, ptr noundef nonnull align 8 dereferenceable(280) %228)
          to label %229 unwind label %249

229:                                              ; preds = %226
  %230 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
  %231 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities24primal_frac_to_the_boundEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(2025) %220, double noundef %224, ptr noundef nonnull align 8 dereferenceable(205) %227, ptr noundef nonnull align 8 dereferenceable(205) %230)
          to label %232 unwind label %251

232:                                              ; preds = %229
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  %233 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %234 unwind label %255

234:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #7
  %235 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %23, ptr noundef nonnull align 8 dereferenceable(280) %235)
          to label %236 unwind label %257

236:                                              ; preds = %234
  %237 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  %238 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %24, ptr noundef nonnull align 8 dereferenceable(280) %238)
          to label %239 unwind label %259

239:                                              ; preds = %236
  %240 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
  invoke void @_ZN10SimTKIpopt9IpoptData31SetTrialPrimalVariablesFromStepEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(864) %233, double noundef %231, ptr noundef nonnull align 8 dereferenceable(205) %237, ptr noundef nonnull align 8 dereferenceable(205) %240)
          to label %241 unwind label %261

241:                                              ; preds = %239
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  %242 = load ptr, ptr %0, align 8, !tbaa !31
  %243 = getelementptr inbounds i8, ptr %242, i64 56
  %244 = load ptr, ptr %243, align 8
  %245 = invoke noundef zeroext i1 %244(ptr noundef nonnull align 8 dereferenceable(304) %0, double noundef %1)
          to label %246 unwind label %255

246:                                              ; preds = %241
  br i1 %245, label %291, label %296

247:                                              ; preds = %223
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %254

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

251:                                              ; preds = %229
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  br label %253

253:                                              ; preds = %251, %249
  %.pn95 = phi { ptr, i32 } [ %252, %251 ], [ %250, %249 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br label %254

254:                                              ; preds = %253, %247
  %.pn95.pn = phi { ptr, i32 } [ %.pn95, %253 ], [ %248, %247 ]
  %.12 = extractvalue { ptr, i32 } %.pn95.pn, 1
  %.1251 = extractvalue { ptr, i32 } %.pn95.pn, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  br label %303

255:                                              ; preds = %241, %232
  %256 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE
  br label %265

257:                                              ; preds = %234
  %258 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE
  br label %264

259:                                              ; preds = %236
  %260 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE
  br label %263

261:                                              ; preds = %239
  %262 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  br label %263

263:                                              ; preds = %261, %259
  %.pn98 = phi { ptr, i32 } [ %262, %261 ], [ %260, %259 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  br label %264

264:                                              ; preds = %263, %257
  %.pn98.pn = phi { ptr, i32 } [ %.pn98, %263 ], [ %258, %257 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  br label %265

265:                                              ; preds = %264, %255
  %.pn101 = phi { ptr, i32 } [ %256, %255 ], [ %.pn98.pn, %264 ]
  %.15 = extractvalue { ptr, i32 } %.pn101, 1
  %.1554 = extractvalue { ptr, i32 } %.pn101, 0
  %266 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN10SimTKIpopt8IpoptNLP10Eval_ErrorE) #7
  %267 = icmp eq i32 %.15, %266
  br i1 %267, label %268, label %303

268:                                              ; preds = %265
  %269 = call ptr @__cxa_begin_catch(ptr %.1554) #7
  %270 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %271 unwind label %280

271:                                              ; preds = %268
  invoke void @_ZNK10SimTKIpopt14IpoptException15ReportExceptionERKNS_10JournalistENS_13EJournalLevelE(ptr noundef nonnull align 8 dereferenceable(112) %269, ptr noundef nonnull align 8 dereferenceable(40) %270, i32 noundef 5)
          to label %272 unwind label %280

272:                                              ; preds = %271
  %273 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %274 unwind label %280

274:                                              ; preds = %272
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %273, i32 noundef 2, i32 noundef 2, ptr noundef nonnull @.str.89)
          to label %275 unwind label %280

275:                                              ; preds = %274
  %276 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %277 unwind label %280

277:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %278 unwind label %282

278:                                              ; preds = %277
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %276, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %279 unwind label %284

279:                                              ; preds = %278
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  invoke void @__cxa_end_catch()
          to label %.thread113 unwind label %287

.thread113:                                       ; preds = %279
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %.critedge

280:                                              ; preds = %275, %274, %272, %271, %268
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %289

282:                                              ; preds = %277
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %286

284:                                              ; preds = %278
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %286

286:                                              ; preds = %284, %282
  %.pn103 = phi { ptr, i32 } [ %285, %284 ], [ %283, %282 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %289

287:                                              ; preds = %279
  %288 = landingpad { ptr, i32 }
          cleanup
  br label %290

289:                                              ; preds = %286, %280
  %.pn103.pn = phi { ptr, i32 } [ %.pn103, %286 ], [ %281, %280 ]
  invoke void @__cxa_end_catch()
          to label %290 unwind label %313

290:                                              ; preds = %289, %287
  %.pn106 = phi { ptr, i32 } [ %288, %287 ], [ %.pn103.pn, %289 ]
  %.18 = extractvalue { ptr, i32 } %.pn106, 1
  %.1857 = extractvalue { ptr, i32 } %.pn106, 0
  br label %303

291:                                              ; preds = %246
  %292 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %293 unwind label %.loopexit

293:                                              ; preds = %291
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %292, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.91, i32 noundef %70)
          to label %294 unwind label %.loopexit

294:                                              ; preds = %293
  store double %231, ptr %2, align 8, !tbaa !29
  %295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %300 unwind label %.loopexit

296:                                              ; preds = %246
  %297 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %298 unwind label %.loopexit

298:                                              ; preds = %296
  %299 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %297)
          to label %300 unwind label %.loopexit

300:                                              ; preds = %294, %298
  %.273 = phi i32 [ %.071148, %294 ], [ %70, %298 ]
  %.269 = phi double [ %.067150, %294 ], [ %299, %298 ]
  %.133 = phi i8 [ 1, %294 ], [ 0, %298 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  %301 = load i32, ptr %27, align 8, !tbaa !5
  %302 = icmp slt i32 %.273, %301
  br i1 %302, label %60, label %.critedge.loopexit

303:                                              ; preds = %216, %254, %265, %290, %215, %210, %205, %200, %195, %190, %182
  %.2059 = phi ptr [ %.1049, %215 ], [ %.948, %210 ], [ %.847, %205 ], [ %.746, %200 ], [ %184, %182 ], [ %.645, %195 ], [ %.544, %190 ], [ %217, %216 ], [ %.1857, %290 ], [ %.1554, %265 ], [ %.1251, %254 ]
  %.20 = phi i32 [ %.10, %215 ], [ %.9, %210 ], [ %.8, %205 ], [ %.7, %200 ], [ %185, %182 ], [ %.6, %195 ], [ %.5, %190 ], [ %218, %216 ], [ %.18, %290 ], [ %.15, %265 ], [ %.12, %254 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br label %304

304:                                              ; preds = %303, %178
  %.2160 = phi ptr [ %.2059, %303 ], [ %180, %178 ]
  %.21 = phi i32 [ %.20, %303 ], [ %181, %178 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  br label %305

305:                                              ; preds = %304, %174
  %.2261 = phi ptr [ %.2160, %304 ], [ %176, %174 ]
  %.22 = phi i32 [ %.21, %304 ], [ %177, %174 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %307

.critedge.loopexit:                               ; preds = %60, %300, %64
  %.234.ph = phi i8 [ %.032152, %60 ], [ %.133, %300 ], [ %.032152, %64 ]
  %306 = trunc nuw i8 %.234.ph to i1
  br label %.critedge

.critedge:                                        ; preds = %.thread113, %55, %.critedge.loopexit, %.thread
  %.2 = phi i1 [ false, %.thread ], [ false, %.thread113 ], [ false, %55 ], [ %306, %.critedge.loopexit ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  br label %312

307:                                              ; preds = %305, %173, %168, %163, %158, %150
  %.2362 = phi ptr [ %.2261, %305 ], [ %.443, %173 ], [ %.342, %168 ], [ %152, %150 ], [ %.241, %163 ], [ %.140, %158 ]
  %.23 = phi i32 [ %.22, %305 ], [ %.4, %173 ], [ %.338, %168 ], [ %153, %150 ], [ %.237, %163 ], [ %.136, %158 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  br label %308

308:                                              ; preds = %307, %149
  %.2463 = phi ptr [ %.2362, %307 ], [ %.039, %149 ]
  %.24 = phi i32 [ %.23, %307 ], [ %.035, %149 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  br label %309

309:                                              ; preds = %308, %141
  %.2564 = phi ptr [ %.2463, %308 ], [ %143, %141 ]
  %.25 = phi i32 [ %.24, %308 ], [ %144, %141 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  %310 = insertvalue { ptr, i32 } poison, ptr %.2564, 0
  %311 = insertvalue { ptr, i32 } %310, i32 %.25, 1
  resume { ptr, i32 } %311

312:                                              ; preds = %4, %.critedge
  %.3 = phi i1 [ %.2, %.critedge ], [ false, %4 ]
  ret i1 %.3

313:                                              ; preds = %289
  %314 = landingpad { ptr, i32 }
          catch ptr null
  %315 = extractvalue { ptr, i32 } %314, 0
  call void @__clang_call_terminate(ptr %315) #8
  unreachable
}

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities6curr_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #5 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 void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities14curr_d_minus_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

; 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 @_ZN10SimTKIpopt6Vector4CopyERKS0_(ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #5 align 2

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

; Function Attrs: 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 #5 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities7trial_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities15trial_d_minus_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

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

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

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

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities28curr_grad_lag_with_damping_xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities28curr_grad_lag_with_damping_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

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

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

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

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_x_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_x_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_s_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22curr_relaxed_compl_s_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #4

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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities24primal_frac_to_the_boundEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(2025), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #4

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

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

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

declare void @_ZN10SimTKIpopt9IpoptData31SetTrialPrimalVariablesFromStepEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(864), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #4

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

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

declare void @__cxa_end_catch() local_unnamed_addr

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

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

; Function Attrs: 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 @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nofree nosync nounwind memory(none) }
attributes #7 = { nounwind }
attributes #8 = { noreturn 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, !10, i64 144}
!6 = !{!"_ZTSN10SimTKIpopt16FilterLSAcceptorE", !7, i64 0, !19, i64 56, !19, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !19, i64 96, !19, i64 104, !19, i64 112, !19, i64 120, !19, i64 128, !19, i64 136, !10, i64 144, !19, i64 152, !19, i64 160, !20, i64 168, !19, i64 176, !18, i64 184, !18, i64 185, !10, i64 188, !10, i64 192, !19, i64 200, !19, i64 208, !19, i64 216, !19, i64 224, !19, i64 232, !19, i64 240, !21, i64 248, !19, i64 280, !10, i64 288, !10, i64 292, !28, i64 296}
!7 = !{!"_ZTSN10SimTKIpopt22BacktrackingLSAcceptorE", !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 = !{!"double", !11, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt16FilterLSAcceptor17CorrectorTypeEnumE", !11, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt6FilterE", !10, i64 0, !22, i64 8}
!22 = !{!"_ZTSNSt7__cxx114listIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !23, i64 0}
!23 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !24, i64 0}
!24 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EE10_List_implE", !25, i64 0}
!25 = !{!"_ZTSNSt8__detail17_List_node_headerE", !26, i64 0, !27, i64 16}
!26 = !{!"_ZTSNSt8__detail15_List_node_baseE", !14, i64 0, !14, i64 8}
!27 = !{!"long", !11, i64 0}
!28 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEE", !14, i64 0}
!29 = !{!19, !19, i64 0}
!30 = !{!6, !19, i64 152}
!31 = !{!32, !32, i64 0}
!32 = !{!"vtable pointer", !12, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass