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

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

%"class.SimTKIpopt::SmartPtr.8" = type { ptr }
%"class.SimTKIpopt::SmartPtr.9" = type { ptr }
%"class.SimTKIpopt::SmartPtr.33" = type { ptr }
%"class.SimTKIpopt::SmartPtr.37" = type { ptr }
%"class.SimTKIpopt::SmartPtr.54" = type { ptr }
%"class.SimTKIpopt::SmartPtr.55" = 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::RestoFilterConvergenceCheck" = type { %"class.SimTKIpopt::OptimalityErrorConvergenceCheck.base", double, i32, i8, ptr }
%"class.SimTKIpopt::OptimalityErrorConvergenceCheck.base" = type <{ %"class.SimTKIpopt::ConvergenceCheck.base", [3 x i8], i32, double, double, double, i32, [4 x i8], double, double, double, double, double, i32 }>
%"class.SimTKIpopt::ConvergenceCheck.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::OptimalityErrorConvergenceCheck" = type <{ %"class.SimTKIpopt::ConvergenceCheck.base", [3 x i8], i32, double, double, double, i32, [4 x i8], double, double, double, double, double, i32, [4 x i8] }>

@_ZTIN10SimTKIpopt8IpoptNLPE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt13RestoIpoptNLPE = external constant ptr
@_ZTIN10SimTKIpopt6VectorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundVectorE = external constant ptr
@.str.4 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [107 x i8], align 1
@_ZTIN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.17 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE = external dso_local constant { ptr, ptr, ptr }, align 8

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN10SimTKIpopt27RestoFilterConvergenceCheck16CheckConvergenceEb(ptr noundef nonnull align 8 dereferenceable(160) %0, i1 noundef zeroext %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca i8, align 1
  %6 = alloca ptr, align 8
  %7 = alloca %"class.SimTKIpopt::SmartPtr.8", align 8
  %8 = alloca %"class.SimTKIpopt::SmartPtr.9", align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %12 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %13 = alloca ptr, align 8
  %14 = alloca %"class.SimTKIpopt::SmartPtr.54", align 8
  %15 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %16 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %17 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %18 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %26 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %27 = alloca i1, align 1
  %28 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %29 = alloca i1, align 1
  %30 = alloca i1, align 1
  %31 = alloca i1, align 1
  %32 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %33 = alloca i1, align 1
  %34 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %35 = alloca i1, align 1
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %39 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %40 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %41 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca i32, align 4
  %47 = alloca i8, align 1
  %48 = alloca %"class.SimTKIpopt::SmartPtr.55", align 8
  %49 = alloca %"class.SimTKIpopt::SmartPtr.9", align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator.15", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator.15", align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator.15", align 1
  %63 = alloca i1, align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator.15", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator.15", align 1
  %68 = alloca i1, align 1
  store ptr %0, ptr %4, align 8, !tbaa !5
  %69 = zext i1 %1 to i8
  store i8 %69, ptr %5, align 1, !tbaa !9
  %70 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %71 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
  %72 = icmp eq ptr %71, null
  br i1 %72, label %75, label %73

73:                                               ; preds = %2
  %74 = call ptr @__dynamic_cast(ptr %71, ptr @_ZTIN10SimTKIpopt8IpoptNLPE, ptr @_ZTIN10SimTKIpopt13RestoIpoptNLPE, i64 0) #7
  br label %76

75:                                               ; preds = %2
  br label %76

76:                                               ; preds = %75, %73
  %77 = phi ptr [ %74, %73 ], [ null, %75 ]
  store ptr %77, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %78 = load ptr, ptr %6, align 8, !tbaa !5
  %79 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt13RestoIpoptNLP10OrigIpDataEv(ptr noundef nonnull align 8 dereferenceable(312) %78)
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %79)
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %80 = load ptr, ptr %6, align 8, !tbaa !5
  %81 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt13RestoIpoptNLP8OrigIpCqEv(ptr noundef nonnull align 8 dereferenceable(312) %80)
          to label %82 unwind label %95

82:                                               ; preds = %76
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %81)
          to label %83 unwind label %95

83:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %84 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %85 unwind label %99

85:                                               ; preds = %83
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %12, ptr noundef nonnull align 8 dereferenceable(864) %84)
          to label %86 unwind label %99

86:                                               ; preds = %85
  %87 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %88 unwind label %103

88:                                               ; preds = %86
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %11, ptr noundef nonnull align 8 dereferenceable(280) %87)
          to label %89 unwind label %103

89:                                               ; preds = %88
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %90 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6VectorEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %91 unwind label %108

91:                                               ; preds = %89
  %92 = icmp eq ptr %90, null
  br i1 %92, label %112, label %93

93:                                               ; preds = %91
  %94 = call ptr @__dynamic_cast(ptr %90, ptr @_ZTIN10SimTKIpopt6VectorE, ptr @_ZTIN10SimTKIpopt14CompoundVectorE, i64 0) #7
  br label %113

95:                                               ; preds = %82, %76
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %9, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %10, align 4
  br label %730

99:                                               ; preds = %85, %83
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %9, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %10, align 4
  br label %107

103:                                              ; preds = %88, %86
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %9, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %10, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  br label %107

107:                                              ; preds = %103, %99
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  br label %729

108:                                              ; preds = %89
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %9, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %10, align 4
  br label %728

112:                                              ; preds = %91
  br label %113

113:                                              ; preds = %112, %93
  %114 = phi ptr [ %94, %93 ], [ null, %112 ]
  store ptr %114, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %115 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %116 unwind label %233

116:                                              ; preds = %113
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %15, ptr noundef nonnull align 8 dereferenceable(864) %115)
          to label %117 unwind label %233

117:                                              ; preds = %116
  %118 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %119 unwind label %237

119:                                              ; preds = %117
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.54") align 8 %14, ptr noundef nonnull align 8 dereferenceable(280) %118)
          to label %120 unwind label %237

120:                                              ; preds = %119
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  %121 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %122 unwind label %242

122:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %123 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %16, ptr noundef nonnull align 8 dereferenceable(265) %123, i32 noundef 0)
          to label %124 unwind label %246

124:                                              ; preds = %122
  %125 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %126 unwind label %250

126:                                              ; preds = %124
  invoke void @_ZN10SimTKIpopt14IteratesVector5Set_xERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %121, ptr noundef nonnull align 8 dereferenceable(205) %125)
          to label %127 unwind label %250

127:                                              ; preds = %126
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  %128 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %129 unwind label %242

129:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %130 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %131 unwind label %255

131:                                              ; preds = %129
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %18, ptr noundef nonnull align 8 dereferenceable(864) %130)
          to label %132 unwind label %255

132:                                              ; preds = %131
  %133 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %134 unwind label %259

134:                                              ; preds = %132
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %17, ptr noundef nonnull align 8 dereferenceable(280) %133)
          to label %135 unwind label %259

135:                                              ; preds = %134
  %136 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %137 unwind label %263

137:                                              ; preds = %135
  invoke void @_ZN10SimTKIpopt14IteratesVector5Set_sERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %128, ptr noundef nonnull align 8 dereferenceable(205) %136)
          to label %138 unwind label %263

138:                                              ; preds = %137
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  %139 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %140 unwind label %242

140:                                              ; preds = %138
  invoke void @_ZN10SimTKIpopt9IpoptData9set_trialERNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(864) %139, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %141 unwind label %242

141:                                              ; preds = %140
  %142 = load i8, ptr %5, align 1, !tbaa !9, !range !11, !noundef !12
  %143 = trunc i8 %142 to i1
  br i1 %143, label %144, label %476

144:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 1, ptr %19, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %145 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %146 unwind label %269

146:                                              ; preds = %144
  %147 = invoke noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %145)
          to label %148 unwind label %269

148:                                              ; preds = %146
  store i32 %147, ptr %20, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %149 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %150 unwind label %273

150:                                              ; preds = %148
  %151 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %149, i32 noundef 2)
          to label %152 unwind label %273

152:                                              ; preds = %150
  store double %151, ptr %21, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %153 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %154 unwind label %277

154:                                              ; preds = %152
  %155 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %153, i32 noundef 2)
          to label %156 unwind label %277

156:                                              ; preds = %154
  store double %155, ptr %22, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %157 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %158 unwind label %281

158:                                              ; preds = %156
  %159 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData7curr_muEv(ptr noundef nonnull align 8 dereferenceable(864) %157)
          to label %160 unwind label %281

160:                                              ; preds = %158
  store double %159, ptr %23, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  store i1 false, ptr %27, align 1
  store i1 false, ptr %29, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %31, align 1
  store i1 false, ptr %33, align 1
  store i1 false, ptr %35, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  %161 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %162 unwind label %285

162:                                              ; preds = %160
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %25, ptr noundef nonnull align 8 dereferenceable(864) %161)
          to label %163 unwind label %285

163:                                              ; preds = %162
  %164 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_14IteratesVectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %165 unwind label %289

165:                                              ; preds = %163
  br i1 %164, label %166, label %184

166:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  store i1 true, ptr %27, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  store i1 true, ptr %29, align 1
  %167 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %168 unwind label %293

168:                                              ; preds = %166
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %28, ptr noundef nonnull align 8 dereferenceable(864) %167)
          to label %169 unwind label %293

169:                                              ; preds = %168
  store i1 true, ptr %30, align 1
  %170 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %171 unwind label %297

171:                                              ; preds = %169
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %26, ptr noundef nonnull align 8 dereferenceable(280) %170)
          to label %172 unwind label %297

172:                                              ; preds = %171
  store i1 true, ptr %31, align 1
  %173 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %174 unwind label %301

174:                                              ; preds = %172
  br i1 %173, label %175, label %184

175:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  store i1 true, ptr %33, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  store i1 true, ptr %35, align 1
  %176 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %177 unwind label %305

177:                                              ; preds = %175
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %34, ptr noundef nonnull align 8 dereferenceable(864) %176)
          to label %178 unwind label %305

178:                                              ; preds = %177
  store i1 true, ptr %36, align 1
  %179 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %180 unwind label %309

180:                                              ; preds = %178
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %32, ptr noundef nonnull align 8 dereferenceable(280) %179)
          to label %181 unwind label %309

181:                                              ; preds = %180
  store i1 true, ptr %37, align 1
  %182 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %183 unwind label %313

183:                                              ; preds = %181
  br label %184

184:                                              ; preds = %183, %174, %165
  %185 = phi i1 [ false, %174 ], [ false, %165 ], [ %182, %183 ]
  %186 = load i1, ptr %37, align 1
  br i1 %186, label %187, label %188

187:                                              ; preds = %184
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #7
  br label %188

188:                                              ; preds = %187, %184
  %189 = load i1, ptr %36, align 1
  br i1 %189, label %190, label %191

190:                                              ; preds = %188
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #7
  br label %191

191:                                              ; preds = %190, %188
  %192 = load i1, ptr %35, align 1
  br i1 %192, label %193, label %194

193:                                              ; preds = %191
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %194

194:                                              ; preds = %193, %191
  %195 = load i1, ptr %33, align 1
  br i1 %195, label %196, label %197

196:                                              ; preds = %194
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %197

197:                                              ; preds = %196, %194
  %198 = load i1, ptr %31, align 1
  br i1 %198, label %199, label %200

199:                                              ; preds = %197
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br label %200

200:                                              ; preds = %199, %197
  %201 = load i1, ptr %30, align 1
  br i1 %201, label %202, label %203

202:                                              ; preds = %200
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br label %203

203:                                              ; preds = %202, %200
  %204 = load i1, ptr %29, align 1
  br i1 %204, label %205, label %206

205:                                              ; preds = %203
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %206

206:                                              ; preds = %205, %203
  %207 = load i1, ptr %27, align 1
  br i1 %207, label %208, label %209

208:                                              ; preds = %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %209

209:                                              ; preds = %208, %206
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  br i1 %185, label %210, label %377

210:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  %211 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %212 unwind label %348

212:                                              ; preds = %210
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %39, ptr noundef nonnull align 8 dereferenceable(864) %211)
          to label %213 unwind label %348

213:                                              ; preds = %212
  %214 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %215 unwind label %352

215:                                              ; preds = %213
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %38, ptr noundef nonnull align 8 dereferenceable(280) %214)
          to label %216 unwind label %352

216:                                              ; preds = %215
  %217 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %218 unwind label %356

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

220:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %221 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %222 unwind label %360

222:                                              ; preds = %220
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %41, ptr noundef nonnull align 8 dereferenceable(864) %221)
          to label %223 unwind label %360

223:                                              ; preds = %222
  %224 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %225 unwind label %364

225:                                              ; preds = %223
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %40, ptr noundef nonnull align 8 dereferenceable(280) %224)
          to label %226 unwind label %364

226:                                              ; preds = %225
  %227 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %228 unwind label %368

228:                                              ; preds = %226
  %229 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %227)
          to label %230 unwind label %368

230:                                              ; preds = %228
  %231 = invoke noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %219, double noundef %229)
          to label %232 unwind label %368

232:                                              ; preds = %230
  store double %231, ptr %24, align 8, !tbaa !17
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %378

233:                                              ; preds = %116, %113
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %9, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %10, align 4
  br label %241

237:                                              ; preds = %119, %117
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %9, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %10, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  br label %241

241:                                              ; preds = %237, %233
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %727

242:                                              ; preds = %478, %476, %140, %138, %127, %120
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %9, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %10, align 4
  br label %726

246:                                              ; preds = %122
  %247 = landingpad { ptr, i32 }
          cleanup
  %248 = extractvalue { ptr, i32 } %247, 0
  store ptr %248, ptr %9, align 8
  %249 = extractvalue { ptr, i32 } %247, 1
  store i32 %249, ptr %10, align 4
  br label %254

250:                                              ; preds = %126, %124
  %251 = landingpad { ptr, i32 }
          cleanup
  %252 = extractvalue { ptr, i32 } %251, 0
  store ptr %252, ptr %9, align 8
  %253 = extractvalue { ptr, i32 } %251, 1
  store i32 %253, ptr %10, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  br label %254

254:                                              ; preds = %250, %246
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  br label %726

255:                                              ; preds = %131, %129
  %256 = landingpad { ptr, i32 }
          cleanup
  %257 = extractvalue { ptr, i32 } %256, 0
  store ptr %257, ptr %9, align 8
  %258 = extractvalue { ptr, i32 } %256, 1
  store i32 %258, ptr %10, align 4
  br label %268

259:                                              ; preds = %134, %132
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %9, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %10, align 4
  br label %267

263:                                              ; preds = %137, %135
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %9, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %10, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br label %267

267:                                              ; preds = %263, %259
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  br label %268

268:                                              ; preds = %267, %255
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %726

269:                                              ; preds = %146, %144
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %9, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %10, align 4
  br label %475

273:                                              ; preds = %150, %148
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %9, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %10, align 4
  br label %474

277:                                              ; preds = %154, %152
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %9, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %10, align 4
  br label %473

281:                                              ; preds = %158, %156
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %9, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %10, align 4
  br label %472

285:                                              ; preds = %162, %160
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %9, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %10, align 4
  br label %347

289:                                              ; preds = %163
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %9, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %10, align 4
  br label %346

293:                                              ; preds = %168, %166
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %9, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %10, align 4
  br label %339

297:                                              ; preds = %171, %169
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %9, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %10, align 4
  br label %335

301:                                              ; preds = %172
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %9, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %10, align 4
  br label %331

305:                                              ; preds = %177, %175
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %9, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %10, align 4
  br label %324

309:                                              ; preds = %180, %178
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %9, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %10, align 4
  br label %320

313:                                              ; preds = %181
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %9, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %10, align 4
  %317 = load i1, ptr %37, align 1
  br i1 %317, label %318, label %319

318:                                              ; preds = %313
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #7
  br label %319

319:                                              ; preds = %318, %313
  br label %320

320:                                              ; preds = %319, %309
  %321 = load i1, ptr %36, align 1
  br i1 %321, label %322, label %323

322:                                              ; preds = %320
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #7
  br label %323

323:                                              ; preds = %322, %320
  br label %324

324:                                              ; preds = %323, %305
  %325 = load i1, ptr %35, align 1
  br i1 %325, label %326, label %327

326:                                              ; preds = %324
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %327

327:                                              ; preds = %326, %324
  %328 = load i1, ptr %33, align 1
  br i1 %328, label %329, label %330

329:                                              ; preds = %327
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %330

330:                                              ; preds = %329, %327
  br label %331

331:                                              ; preds = %330, %301
  %332 = load i1, ptr %31, align 1
  br i1 %332, label %333, label %334

333:                                              ; preds = %331
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br label %334

334:                                              ; preds = %333, %331
  br label %335

335:                                              ; preds = %334, %297
  %336 = load i1, ptr %30, align 1
  br i1 %336, label %337, label %338

337:                                              ; preds = %335
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br label %338

338:                                              ; preds = %337, %335
  br label %339

339:                                              ; preds = %338, %293
  %340 = load i1, ptr %29, align 1
  br i1 %340, label %341, label %342

341:                                              ; preds = %339
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %342

342:                                              ; preds = %341, %339
  %343 = load i1, ptr %27, align 1
  br i1 %343, label %344, label %345

344:                                              ; preds = %342
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %345

345:                                              ; preds = %344, %342
  br label %346

346:                                              ; preds = %345, %289
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  br label %347

347:                                              ; preds = %346, %285
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  br label %471

348:                                              ; preds = %212, %210
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %9, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %10, align 4
  br label %376

352:                                              ; preds = %215, %213
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %9, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %10, align 4
  br label %375

356:                                              ; preds = %218, %216
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %9, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %10, align 4
  br label %374

360:                                              ; preds = %222, %220
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %9, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %10, align 4
  br label %373

364:                                              ; preds = %225, %223
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %9, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %10, align 4
  br label %372

368:                                              ; preds = %230, %228, %226
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %9, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %10, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #7
  br label %372

372:                                              ; preds = %368, %364
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #7
  br label %373

373:                                              ; preds = %372, %360
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %374

374:                                              ; preds = %373, %356
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #7
  br label %375

375:                                              ; preds = %374, %352
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #7
  br label %376

376:                                              ; preds = %375, %348
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %471

377:                                              ; preds = %209
  store double 0.000000e+00, ptr %24, align 8, !tbaa !17
  br label %378

378:                                              ; preds = %377, %232
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %379 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %380 unwind label %428

380:                                              ; preds = %378
  %381 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData17info_alpha_primalEv(ptr noundef nonnull align 8 dereferenceable(864) %379)
          to label %382 unwind label %428

382:                                              ; preds = %380
  store double %381, ptr %42, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  %383 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %384 unwind label %432

384:                                              ; preds = %382
  %385 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData15info_alpha_dualEv(ptr noundef nonnull align 8 dereferenceable(864) %383)
          to label %386 unwind label %432

386:                                              ; preds = %384
  store double %385, ptr %43, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %387 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %388 unwind label %436

388:                                              ; preds = %386
  %389 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData11info_regu_xEv(ptr noundef nonnull align 8 dereferenceable(864) %387)
          to label %390 unwind label %436

390:                                              ; preds = %388
  store double %389, ptr %44, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %391 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %392 unwind label %440

392:                                              ; preds = %390
  %393 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities16unscaled_trial_fEv(ptr noundef nonnull align 8 dereferenceable(2025) %391)
          to label %394 unwind label %440

394:                                              ; preds = %392
  store double %393, ptr %45, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  %395 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %396 unwind label %444

396:                                              ; preds = %394
  %397 = invoke noundef i32 @_ZNK10SimTKIpopt9IpoptData13info_ls_countEv(ptr noundef nonnull align 8 dereferenceable(864) %395)
          to label %398 unwind label %444

398:                                              ; preds = %396
  store i32 %397, ptr %46, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #7
  %399 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %400 unwind label %448

400:                                              ; preds = %398
  %401 = load i32, ptr %19, align 4, !tbaa !13
  %402 = load i32, ptr %20, align 4, !tbaa !15
  %403 = load double, ptr %45, align 8, !tbaa !17
  %404 = load double, ptr %21, align 8, !tbaa !17
  %405 = load double, ptr %22, align 8, !tbaa !17
  %406 = load double, ptr %23, align 8, !tbaa !17
  %407 = load double, ptr %24, align 8, !tbaa !17
  %408 = load double, ptr %44, align 8, !tbaa !17
  %409 = load double, ptr %43, align 8, !tbaa !17
  %410 = load double, ptr %42, align 8, !tbaa !17
  %411 = load i32, ptr %46, align 4, !tbaa !15
  %412 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %413 unwind label %448

413:                                              ; preds = %400
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_9IpoptDataEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef %412)
          to label %414 unwind label %448

414:                                              ; preds = %413
  %415 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %416 unwind label %452

416:                                              ; preds = %414
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef %415)
          to label %417 unwind label %452

417:                                              ; preds = %416
  %418 = load ptr, ptr %399, align 8, !tbaa !19
  %419 = getelementptr inbounds ptr, ptr %418, i64 36
  %420 = load ptr, ptr %419, align 8
  %421 = invoke noundef zeroext i1 %420(ptr noundef nonnull align 8 dereferenceable(24) %399, i32 noundef %401, i32 noundef %402, double noundef %403, double noundef %404, double noundef %405, double noundef %406, double noundef %407, double noundef %408, double noundef %409, double noundef %410, i32 noundef %411, ptr noundef %48, ptr noundef %49)
          to label %422 unwind label %456

422:                                              ; preds = %417
  %423 = xor i1 %421, true
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #7
  %424 = zext i1 %423 to i8
  store i8 %424, ptr %47, align 1, !tbaa !9
  %425 = load i8, ptr %47, align 1, !tbaa !9, !range !11, !noundef !12
  %426 = trunc i8 %425 to i1
  br i1 %426, label %427, label %461

427:                                              ; preds = %422
  store i32 5, ptr %3, align 4
  store i32 1, ptr %50, align 4
  br label %462

428:                                              ; preds = %380, %378
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %9, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %10, align 4
  br label %470

432:                                              ; preds = %384, %382
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %9, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %10, align 4
  br label %469

436:                                              ; preds = %388, %386
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %9, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %10, align 4
  br label %468

440:                                              ; preds = %392, %390
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %9, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %10, align 4
  br label %467

444:                                              ; preds = %396, %394
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %9, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %10, align 4
  br label %466

448:                                              ; preds = %413, %400, %398
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %9, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %10, align 4
  br label %465

452:                                              ; preds = %416, %414
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %9, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %10, align 4
  br label %460

456:                                              ; preds = %417
  %457 = landingpad { ptr, i32 }
          cleanup
  %458 = extractvalue { ptr, i32 } %457, 0
  store ptr %458, ptr %9, align 8
  %459 = extractvalue { ptr, i32 } %457, 1
  store i32 %459, ptr %10, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #7
  br label %460

460:                                              ; preds = %456, %452
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #7
  br label %465

461:                                              ; preds = %422
  store i32 0, ptr %50, align 4
  br label %462

462:                                              ; preds = %461, %427
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  %463 = load i32, ptr %50, align 4
  switch i32 %463, label %724 [
    i32 0, label %464
  ]

464:                                              ; preds = %462
  br label %476

465:                                              ; preds = %460, %448
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  br label %466

466:                                              ; preds = %465, %444
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %467

467:                                              ; preds = %466, %440
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %468

468:                                              ; preds = %467, %436
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  br label %469

469:                                              ; preds = %468, %432
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  br label %470

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

471:                                              ; preds = %470, %376, %347
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %472

472:                                              ; preds = %471, %281
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %473

473:                                              ; preds = %472, %277
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %474

474:                                              ; preds = %473, %273
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %475

475:                                              ; preds = %474, %269
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %726

476:                                              ; preds = %464, %141
  %477 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %478 unwind label %242

478:                                              ; preds = %476
  %479 = invoke noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %477)
          to label %480 unwind label %242

480:                                              ; preds = %478
  %481 = getelementptr inbounds %"class.SimTKIpopt::RestoFilterConvergenceCheck", ptr %70, i32 0, i32 2
  %482 = load i32, ptr %481, align 8, !tbaa !21
  %483 = icmp sge i32 %479, %482
  br i1 %483, label %484, label %485

484:                                              ; preds = %480
  store i32 3, ptr %3, align 4
  store i32 1, ptr %50, align 4
  br label %724

485:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  %486 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %487 unwind label %521

487:                                              ; preds = %485
  %488 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %486)
          to label %489 unwind label %521

489:                                              ; preds = %487
  store double %488, ptr %52, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  %490 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %491 unwind label %525

491:                                              ; preds = %489
  %492 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %490)
          to label %493 unwind label %525

493:                                              ; preds = %491
  store double %492, ptr %53, align 8, !tbaa !17
  %494 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %495 unwind label %525

495:                                              ; preds = %493
  %496 = load double, ptr %53, align 8, !tbaa !17
  %497 = load double, ptr %52, align 8, !tbaa !17
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %494, i32 noundef 5, i32 noundef 2, ptr noundef @.str.4, double noundef %496, double noundef %497)
          to label %498 unwind label %525

498:                                              ; preds = %495
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %499 = getelementptr inbounds %"class.SimTKIpopt::RestoFilterConvergenceCheck", ptr %70, i32 0, i32 1
  %500 = load double, ptr %499, align 8, !tbaa !31
  %501 = load double, ptr %53, align 8, !tbaa !17
  %502 = fmul double %500, %501
  %503 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %504 unwind label %529

504:                                              ; preds = %498
  %505 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %503)
          to label %506 unwind label %529

506:                                              ; preds = %504
  %507 = getelementptr inbounds %"class.SimTKIpopt::OptimalityErrorConvergenceCheck", ptr %70, i32 0, i32 4
  %508 = load double, ptr %507, align 8, !tbaa !32
  %509 = invoke noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %505, double noundef %508)
          to label %510 unwind label %529

510:                                              ; preds = %506
  %511 = fmul double 1.000000e+02, %509
  %512 = invoke noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %502, double noundef %511)
          to label %513 unwind label %529

513:                                              ; preds = %510
  store double %512, ptr %54, align 8, !tbaa !17
  %514 = getelementptr inbounds %"class.SimTKIpopt::RestoFilterConvergenceCheck", ptr %70, i32 0, i32 3
  %515 = load i8, ptr %514, align 4, !tbaa !33, !range !11, !noundef !12
  %516 = trunc i8 %515 to i1
  br i1 %516, label %517, label %533

517:                                              ; preds = %513
  %518 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %519 unwind label %529

519:                                              ; preds = %517
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %518, i32 noundef 5, i32 noundef 2, ptr noundef @.str.5)
          to label %520 unwind label %529

520:                                              ; preds = %519
  store i32 0, ptr %51, align 4, !tbaa !34
  br label %600

521:                                              ; preds = %487, %485
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %9, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %10, align 4
  br label %723

525:                                              ; preds = %495, %493, %491, %489
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %9, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %10, align 4
  br label %722

529:                                              ; preds = %603, %556, %554, %550, %547, %544, %542, %539, %537, %519, %517, %510, %506, %504, %498
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %9, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %10, align 4
  br label %721

533:                                              ; preds = %513
  %534 = load double, ptr %52, align 8, !tbaa !17
  %535 = load double, ptr %54, align 8, !tbaa !17
  %536 = fcmp ogt double %534, %535
  br i1 %536, label %537, label %542

537:                                              ; preds = %533
  %538 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %539 unwind label %529

539:                                              ; preds = %537
  %540 = load double, ptr %54, align 8, !tbaa !17
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %538, i32 noundef 5, i32 noundef 2, ptr noundef @.str.6, double noundef %540)
          to label %541 unwind label %529

541:                                              ; preds = %539
  store i32 0, ptr %51, align 4, !tbaa !34
  br label %599

542:                                              ; preds = %533
  %543 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %544 unwind label %529

544:                                              ; preds = %542
  %545 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt25IpoptCalculatedQuantities15IsSquareProblemEv(ptr noundef nonnull align 8 dereferenceable(2025) %543)
          to label %546 unwind label %529

546:                                              ; preds = %544
  br i1 %545, label %547, label %558

547:                                              ; preds = %546
  %548 = load double, ptr %52, align 8, !tbaa !17
  %549 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %550 unwind label %529

550:                                              ; preds = %547
  %551 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %549)
          to label %552 unwind label %529

552:                                              ; preds = %550
  %553 = fcmp ole double %548, %551
  br i1 %553, label %554, label %558

554:                                              ; preds = %552
  %555 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %556 unwind label %529

556:                                              ; preds = %554
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %555, i32 noundef 5, i32 noundef 2, ptr noundef @.str.7)
          to label %557 unwind label %529

557:                                              ; preds = %556
  store i32 1, ptr %51, align 4, !tbaa !34
  br label %598

558:                                              ; preds = %552, %546
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %559 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %560 unwind label %577

560:                                              ; preds = %558
  %561 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities17trial_barrier_objEv(ptr noundef nonnull align 8 dereferenceable(2025) %559)
          to label %562 unwind label %577

562:                                              ; preds = %560
  store double %561, ptr %55, align 8, !tbaa !17
  %563 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %564 unwind label %577

564:                                              ; preds = %562
  %565 = load double, ptr %55, align 8, !tbaa !17
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %563, i32 noundef 5, i32 noundef 2, ptr noundef @.str.8, double noundef %565)
          to label %566 unwind label %577

566:                                              ; preds = %564
  %567 = getelementptr inbounds %"class.SimTKIpopt::RestoFilterConvergenceCheck", ptr %70, i32 0, i32 4
  %568 = load ptr, ptr %567, align 8, !tbaa !36
  %569 = load double, ptr %55, align 8, !tbaa !17
  %570 = load double, ptr %52, align 8, !tbaa !17
  %571 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor27IsAcceptableToCurrentFilterEdd(ptr noundef nonnull align 8 dereferenceable(304) %568, double noundef %569, double noundef %570)
          to label %572 unwind label %577

572:                                              ; preds = %566
  br i1 %571, label %581, label %573

573:                                              ; preds = %572
  %574 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %575 unwind label %577

575:                                              ; preds = %573
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %574, i32 noundef 5, i32 noundef 2, ptr noundef @.str.9)
          to label %576 unwind label %577

576:                                              ; preds = %575
  store i32 0, ptr %51, align 4, !tbaa !34
  br label %597

577:                                              ; preds = %594, %592, %590, %588, %581, %575, %573, %566, %564, %562, %560, %558
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %9, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %721

581:                                              ; preds = %572
  %582 = getelementptr inbounds %"class.SimTKIpopt::RestoFilterConvergenceCheck", ptr %70, i32 0, i32 4
  %583 = load ptr, ptr %582, align 8, !tbaa !36
  %584 = load double, ptr %55, align 8, !tbaa !17
  %585 = load double, ptr %52, align 8, !tbaa !17
  %586 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor28IsAcceptableToCurrentIterateEddb(ptr noundef nonnull align 8 dereferenceable(304) %583, double noundef %584, double noundef %585, i1 noundef zeroext true)
          to label %587 unwind label %577

587:                                              ; preds = %581
  br i1 %586, label %592, label %588

588:                                              ; preds = %587
  %589 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %590 unwind label %577

590:                                              ; preds = %588
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %589, i32 noundef 5, i32 noundef 2, ptr noundef @.str.10)
          to label %591 unwind label %577

591:                                              ; preds = %590
  store i32 0, ptr %51, align 4, !tbaa !34
  br label %596

592:                                              ; preds = %587
  %593 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %594 unwind label %577

594:                                              ; preds = %592
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %593, i32 noundef 5, i32 noundef 2, ptr noundef @.str.11)
          to label %595 unwind label %577

595:                                              ; preds = %594
  store i32 1, ptr %51, align 4, !tbaa !34
  br label %596

596:                                              ; preds = %595, %591
  br label %597

597:                                              ; preds = %596, %576
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %598

598:                                              ; preds = %597, %557
  br label %599

599:                                              ; preds = %598, %541
  br label %600

600:                                              ; preds = %599, %520
  %601 = load i32, ptr %51, align 4, !tbaa !34
  %602 = icmp eq i32 %601, 0
  br i1 %602, label %603, label %718

603:                                              ; preds = %600
  %604 = invoke noundef i32 @_ZN10SimTKIpopt31OptimalityErrorConvergenceCheck16CheckConvergenceEb(ptr noundef nonnull align 8 dereferenceable(132) %70, i1 noundef zeroext false)
          to label %605 unwind label %529

605:                                              ; preds = %603
  store i32 %604, ptr %51, align 4, !tbaa !34
  %606 = load i32, ptr %51, align 4, !tbaa !34
  %607 = icmp eq i32 %606, 1
  br i1 %607, label %611, label %608

608:                                              ; preds = %605
  %609 = load i32, ptr %51, align 4, !tbaa !34
  %610 = icmp eq i32 %609, 2
  br i1 %610, label %611, label %717

611:                                              ; preds = %608, %605
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %612 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %613 unwind label %654

613:                                              ; preds = %611
  %614 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %612, i32 noundef 2)
          to label %615 unwind label %654

615:                                              ; preds = %613
  store double %614, ptr %56, align 8, !tbaa !17
  %616 = load double, ptr %56, align 8, !tbaa !17
  %617 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %618 unwind label %654

618:                                              ; preds = %615
  %619 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %617)
          to label %620 unwind label %654

620:                                              ; preds = %618
  %621 = fmul double 1.000000e+02, %619
  %622 = fcmp ole double %616, %621
  br i1 %622, label %623, label %693

623:                                              ; preds = %620
  %624 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %625 unwind label %654

625:                                              ; preds = %623
  %626 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %624)
          to label %627 unwind label %654

627:                                              ; preds = %625
  %628 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %629 unwind label %654

629:                                              ; preds = %627
  %630 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %628)
          to label %631 unwind label %654

631:                                              ; preds = %629
  %632 = fmul double 1.000000e-01, %630
  %633 = fcmp ogt double %626, %632
  br i1 %633, label %634, label %667

634:                                              ; preds = %631
  %635 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %636 unwind label %654

636:                                              ; preds = %634
  %637 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %638 unwind label %654

638:                                              ; preds = %636
  %639 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %637)
          to label %640 unwind label %654

640:                                              ; preds = %638
  %641 = fmul double 1.000000e-02, %639
  invoke void @_ZN10SimTKIpopt9IpoptData7Set_tolEd(ptr noundef nonnull align 8 dereferenceable(864) %635, double noundef %641)
          to label %642 unwind label %654

642:                                              ; preds = %640
  store i32 0, ptr %51, align 4, !tbaa !34
  %643 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %644 unwind label %654

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

646:                                              ; preds = %644
  %647 = invoke noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %645)
          to label %648 unwind label %654

648:                                              ; preds = %646
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %643, i32 noundef 5, i32 noundef 8, ptr noundef @.str.12, double noundef %647)
          to label %649 unwind label %654

649:                                              ; preds = %648
  %650 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %651 unwind label %654

651:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %652 unwind label %658

652:                                              ; preds = %651
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %650, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %653 unwind label %662

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

654:                                              ; preds = %669, %667, %649, %648, %646, %644, %642, %640, %638, %636, %634, %629, %627, %625, %623, %618, %615, %613, %611
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %9, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %10, align 4
  br label %716

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

662:                                              ; preds = %652
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %9, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %666

666:                                              ; preds = %662, %658
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  br label %716

667:                                              ; preds = %631
  %668 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %70)
          to label %669 unwind label %654

669:                                              ; preds = %667
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %668, i32 noundef 2, i32 noundef 8, ptr noundef @.str.14)
          to label %670 unwind label %654

670:                                              ; preds = %669
  store i1 true, ptr %63, align 1
  %671 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %672 unwind label %675

672:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %673 unwind label %679

673:                                              ; preds = %672
  invoke void @_ZN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %671, ptr noundef %59, ptr noundef %61, i32 noundef 213)
          to label %674 unwind label %683

674:                                              ; preds = %673
  store i1 false, ptr %63, align 1
  invoke void @__cxa_throw(ptr %671, ptr @_ZTIN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #8
          to label %736 unwind label %683

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

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

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

687:                                              ; preds = %683, %679
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %688

688:                                              ; preds = %687, %675
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  %689 = load i1, ptr %63, align 1
  br i1 %689, label %690, label %691

690:                                              ; preds = %688
  call void @__cxa_free_exception(ptr %671) #7
  br label %691

691:                                              ; preds = %690, %688
  br label %716

692:                                              ; preds = %653
  br label %715

693:                                              ; preds = %620
  store i1 true, ptr %68, align 1
  %694 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %695 unwind label %698

695:                                              ; preds = %693
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %696 unwind label %702

696:                                              ; preds = %695
  invoke void @_ZN10SimTKIpopt18LOCALLY_INFEASIBLEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %694, ptr noundef %64, ptr noundef %66, i32 noundef 218)
          to label %697 unwind label %706

697:                                              ; preds = %696
  store i1 false, ptr %68, align 1
  invoke void @__cxa_throw(ptr %694, ptr @_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #8
          to label %736 unwind label %706

698:                                              ; preds = %693
  %699 = landingpad { ptr, i32 }
          cleanup
  %700 = extractvalue { ptr, i32 } %699, 0
  store ptr %700, ptr %9, align 8
  %701 = extractvalue { ptr, i32 } %699, 1
  store i32 %701, ptr %10, align 4
  br label %711

702:                                              ; preds = %695
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %9, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %10, align 4
  br label %710

706:                                              ; preds = %697, %696
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %9, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %710

710:                                              ; preds = %706, %702
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %711

711:                                              ; preds = %710, %698
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #7
  %712 = load i1, ptr %68, align 1
  br i1 %712, label %713, label %714

713:                                              ; preds = %711
  call void @__cxa_free_exception(ptr %694) #7
  br label %714

714:                                              ; preds = %713, %711
  br label %716

715:                                              ; preds = %692
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %717

716:                                              ; preds = %714, %691, %666, %654
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %721

717:                                              ; preds = %715, %608
  br label %718

718:                                              ; preds = %717, %600
  %719 = getelementptr inbounds %"class.SimTKIpopt::RestoFilterConvergenceCheck", ptr %70, i32 0, i32 3
  store i8 0, ptr %719, align 4, !tbaa !33
  %720 = load i32, ptr %51, align 4, !tbaa !34
  store i32 %720, ptr %3, align 4
  store i32 1, ptr %50, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %724

721:                                              ; preds = %716, %577, %529
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  br label %722

722:                                              ; preds = %721, %525
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  br label %723

723:                                              ; preds = %722, %521
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %726

724:                                              ; preds = %718, %484, %462
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #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 @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  %725 = load i32, ptr %3, align 4
  ret i32 %725

726:                                              ; preds = %723, %475, %268, %254, %242
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br label %727

727:                                              ; preds = %726, %241
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  br label %728

728:                                              ; preds = %727, %108
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  br label %729

729:                                              ; preds = %728, %107
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  br label %730

730:                                              ; preds = %729, %95
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  br label %731

731:                                              ; preds = %730
  %732 = load ptr, ptr %9, align 8
  %733 = load i32, ptr %10, align 4
  %734 = insertvalue { ptr, i32 } poison, ptr %732, 0
  %735 = insertvalue { ptr, i32 } %734, i32 %733, 1
  resume { ptr, i32 } %735

736:                                              ; preds = %697, %674
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8, ptr noundef nonnull align 8 dereferenceable(265), i32 noundef) #2 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)) #1 align 2

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

; 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)) #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor27IsAcceptableToCurrentFilterEdd(ptr noundef nonnull align 8 dereferenceable(304), double noundef, double noundef) #5

declare noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor28IsAcceptableToCurrentIterateEddb(ptr noundef nonnull align 8 dereferenceable(304), double noundef, double noundef, i1 noundef zeroext) #5

declare noundef i32 @_ZN10SimTKIpopt31OptimalityErrorConvergenceCheck16CheckConvergenceEb(ptr noundef nonnull align 8 dereferenceable(132), i1 noundef zeroext) unnamed_addr #5

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

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

declare ptr @__cxa_allocate_exception(i64)

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

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind willreturn memory(read) }
attributes #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = !{!14, !14, i64 0}
!14 = !{!"_ZTSN10SimTKIpopt13AlgorithmModeE", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"int", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"double", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"vtable pointer", !8, i64 0}
!21 = !{!22, !16, i64 144}
!22 = !{!"_ZTSN10SimTKIpopt27RestoFilterConvergenceCheckE", !23, i64 0, !18, i64 136, !16, i64 144, !10, i64 148, !6, i64 152}
!23 = !{!"_ZTSN10SimTKIpopt31OptimalityErrorConvergenceCheckE", !24, i64 0, !16, i64 52, !18, i64 56, !18, i64 64, !18, i64 72, !16, i64 80, !18, i64 88, !18, i64 96, !18, i64 104, !18, i64 112, !18, i64 120, !16, i64 128}
!24 = !{!"_ZTSN10SimTKIpopt16ConvergenceCheckE", !25, i64 0}
!25 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !26, i64 0, !27, i64 16, !28, i64 24, !29, i64 32, !30, i64 40, !10, i64 48}
!26 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !16, i64 8}
!27 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!28 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !6, i64 0}
!29 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !6, i64 0}
!30 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !6, i64 0}
!31 = !{!22, !18, i64 136}
!32 = !{!23, !18, i64 64}
!33 = !{!22, !10, i64 148}
!34 = !{!35, !35, i64 0}
!35 = !{!"_ZTSN10SimTKIpopt16ConvergenceCheck17ConvergenceStatusE", !7, i64 0}
!36 = !{!22, !6, i64 152}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.SimTKIpopt::SmartPtr.8" = type { ptr }
%"class.SimTKIpopt::SmartPtr.9" = type { ptr }
%"class.SimTKIpopt::SmartPtr.33" = type { ptr }
%"class.SimTKIpopt::SmartPtr.37" = type { ptr }
%"class.SimTKIpopt::SmartPtr.54" = type { ptr }
%"class.SimTKIpopt::SmartPtr.55" = 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 }

@_ZTIN10SimTKIpopt8IpoptNLPE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt13RestoIpoptNLPE = external constant ptr
@_ZTIN10SimTKIpopt6VectorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundVectorE = external constant ptr
@.str.4 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [107 x i8], align 1
@_ZTIN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.17 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE = external dso_local constant { ptr, ptr, ptr }, align 8

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 3, 2) i32 @_ZN10SimTKIpopt27RestoFilterConvergenceCheck16CheckConvergenceEb(ptr noundef nonnull align 8 dereferenceable(160) %0, i1 noundef zeroext %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.SimTKIpopt::SmartPtr.8", align 8
  %4 = alloca %"class.SimTKIpopt::SmartPtr.9", align 8
  %5 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %6 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %7 = alloca %"class.SimTKIpopt::SmartPtr.54", align 8
  %8 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %9 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %10 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %11 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %12 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %13 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %14 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %15 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %16 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %17 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %18 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %19 = alloca %"class.SimTKIpopt::SmartPtr.33", align 8
  %20 = alloca %"class.SimTKIpopt::SmartPtr.37", align 8
  %21 = alloca %"class.SimTKIpopt::SmartPtr.55", align 8
  %22 = alloca %"class.SimTKIpopt::SmartPtr.9", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.15", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.15", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.15", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.15", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.15", align 1
  %33 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %34 = tail call ptr @__dynamic_cast(ptr nonnull %33, ptr nonnull @_ZTIN10SimTKIpopt8IpoptNLPE, ptr nonnull @_ZTIN10SimTKIpopt13RestoIpoptNLPE, i64 0) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #7
  %35 = tail call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt13RestoIpoptNLP10OrigIpDataEv(ptr noundef nonnull align 8 dereferenceable(312) %34)
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull %35)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #7
  %36 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt13RestoIpoptNLP8OrigIpCqEv(ptr noundef nonnull align 8 dereferenceable(312) %34)
          to label %37 unwind label %47

37:                                               ; preds = %2
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull %36)
          to label %38 unwind label %47

38:                                               ; preds = %37
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  %39 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %6, ptr noundef nonnull align 8 dereferenceable(864) %39)
          to label %40 unwind label %49

40:                                               ; preds = %38
  %41 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %5, ptr noundef nonnull align 8 dereferenceable(280) %41)
          to label %42 unwind label %51

42:                                               ; preds = %40
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  %43 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6VectorEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %5)
  %44 = icmp eq ptr %43, null
  br i1 %44, label %54, label %45

45:                                               ; preds = %42
  %46 = call ptr @__dynamic_cast(ptr nonnull %43, ptr nonnull @_ZTIN10SimTKIpopt6VectorE, ptr nonnull @_ZTIN10SimTKIpopt14CompoundVectorE, i64 0) #7
  br label %54

47:                                               ; preds = %37, %2
  %48 = landingpad { ptr, i32 }
          cleanup
  br label %363

49:                                               ; preds = %38
  %50 = landingpad { ptr, i32 }
          cleanup
  br label %53

51:                                               ; preds = %40
  %52 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  br label %53

53:                                               ; preds = %51, %49
  %.pn = phi { ptr, i32 } [ %52, %51 ], [ %50, %49 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  br label %362

54:                                               ; preds = %42, %45
  %55 = phi ptr [ %46, %45 ], [ null, %42 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  %56 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %8, ptr noundef nonnull align 8 dereferenceable(864) %56)
          to label %57 unwind label %117

57:                                               ; preds = %54
  %58 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.54") align 8 %7, ptr noundef nonnull align 8 dereferenceable(280) %58)
          to label %59 unwind label %119

59:                                               ; preds = %57
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  %60 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  invoke void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %9, ptr noundef nonnull align 8 dereferenceable(265) %55, i32 noundef 0)
          to label %61 unwind label %124

61:                                               ; preds = %59
  %62 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
  invoke void @_ZN10SimTKIpopt14IteratesVector5Set_xERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %60, ptr noundef nonnull align 8 dereferenceable(205) %62)
          to label %63 unwind label %126

63:                                               ; preds = %61
  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
  %64 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  %65 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %11, ptr noundef nonnull align 8 dereferenceable(864) %65)
          to label %66 unwind label %129

66:                                               ; preds = %63
  %67 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %10, ptr noundef nonnull align 8 dereferenceable(280) %67)
          to label %68 unwind label %131

68:                                               ; preds = %66
  %69 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
  invoke void @_ZN10SimTKIpopt14IteratesVector5Set_sERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %64, ptr noundef nonnull align 8 dereferenceable(205) %69)
          to label %70 unwind label %133

70:                                               ; preds = %68
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  %71 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZN10SimTKIpopt9IpoptData9set_trialERNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(864) %71, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %72 unwind label %122

72:                                               ; preds = %70
  br i1 %1, label %73, label %213

73:                                               ; preds = %72
  %74 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %75 = call noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %74)
  %76 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %77 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %76, i32 noundef 2)
          to label %78 unwind label %137

78:                                               ; preds = %73
  %79 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %80 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %79, i32 noundef 2)
          to label %81 unwind label %139

81:                                               ; preds = %78
  %82 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %83 = call noundef double @_ZNK10SimTKIpopt9IpoptData7curr_muEv(ptr noundef nonnull align 8 dereferenceable(864) %82)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %84 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %12, ptr noundef nonnull align 8 dereferenceable(864) %84)
          to label %85 unwind label %141

85:                                               ; preds = %81
  %86 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_14IteratesVectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %87 unwind label %143

87:                                               ; preds = %85
  br i1 %86, label %88, label %.critedge167.thread

.critedge167.thread:                              ; preds = %87
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br label %181

88:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %89 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %14, ptr noundef nonnull align 8 dereferenceable(864) %89)
          to label %90 unwind label %145

90:                                               ; preds = %88
  %91 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %13, ptr noundef nonnull align 8 dereferenceable(280) %91)
          to label %92 unwind label %147

92:                                               ; preds = %90
  %93 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %94 unwind label %149

94:                                               ; preds = %92
  br i1 %93, label %95, label %.critedge

95:                                               ; preds = %94
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %96 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %16, ptr noundef nonnull align 8 dereferenceable(864) %96)
          to label %97 unwind label %151

97:                                               ; preds = %95
  %98 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %15, ptr noundef nonnull align 8 dereferenceable(280) %98)
          to label %99 unwind label %153

99:                                               ; preds = %97
  %100 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %.critedge163.thread unwind label %155

.critedge163.thread:                              ; preds = %99
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br i1 %100, label %101, label %181

101:                                              ; preds = %.critedge163.thread
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  %102 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %18, ptr noundef nonnull align 8 dereferenceable(864) %102)
          to label %103 unwind label %164

103:                                              ; preds = %101
  %104 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %17, ptr noundef nonnull align 8 dereferenceable(280) %104)
          to label %105 unwind label %166

105:                                              ; preds = %103
  %106 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
  %107 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %106)
          to label %108 unwind label %168

108:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %109 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  invoke void @_ZNK10SimTKIpopt9IpoptData5deltaEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.37") align 8 %20, ptr noundef nonnull align 8 dereferenceable(864) %109)
          to label %110 unwind label %170

110:                                              ; preds = %108
  %111 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8 %19, ptr noundef nonnull align 8 dereferenceable(280) %111)
          to label %112 unwind label %172

112:                                              ; preds = %110
  %113 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
  %114 = invoke noundef double @_ZNK10SimTKIpopt6Vector4AmaxEv(ptr noundef nonnull align 8 dereferenceable(205) %113)
          to label %115 unwind label %174

115:                                              ; preds = %112
  %116 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %107, double noundef %114)
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  br label %181

117:                                              ; preds = %54
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %121

119:                                              ; preds = %57
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  br label %121

121:                                              ; preds = %119, %117
  %.pn118 = phi { ptr, i32 } [ %120, %119 ], [ %118, %117 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  br label %361

122:                                              ; preds = %70
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %360

124:                                              ; preds = %59
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %128

126:                                              ; preds = %61
  %127 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  br label %128

128:                                              ; preds = %126, %124
  %.pn120 = phi { ptr, i32 } [ %127, %126 ], [ %125, %124 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %360

129:                                              ; preds = %63
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %136

131:                                              ; preds = %66
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %135

133:                                              ; preds = %68
  %134 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br label %135

135:                                              ; preds = %133, %131
  %.pn122 = phi { ptr, i32 } [ %134, %133 ], [ %132, %131 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  br label %136

136:                                              ; preds = %135, %129
  %.pn122.pn = phi { ptr, i32 } [ %.pn122, %135 ], [ %130, %129 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  br label %360

137:                                              ; preds = %73
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %360

139:                                              ; preds = %78
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %360

141:                                              ; preds = %81
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %163

143:                                              ; preds = %85
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %162

145:                                              ; preds = %88
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %161

147:                                              ; preds = %90
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %160

149:                                              ; preds = %92
  %150 = landingpad { ptr, i32 }
          cleanup
  br label %159

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

153:                                              ; preds = %97
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %157

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

157:                                              ; preds = %153, %155
  %.pn125 = phi { ptr, i32 } [ %156, %155 ], [ %154, %153 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  br label %158

158:                                              ; preds = %151, %157
  %.pn125.pn = phi { ptr, i32 } [ %.pn125, %157 ], [ %152, %151 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %159

159:                                              ; preds = %149, %158
  %.pn125.pn.pn = phi { ptr, i32 } [ %.pn125.pn, %158 ], [ %150, %149 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  br label %160

160:                                              ; preds = %147, %159
  %.pn125.pn.pn.pn = phi { ptr, i32 } [ %.pn125.pn.pn, %159 ], [ %148, %147 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br label %161

161:                                              ; preds = %145, %160
  %.pn125.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn125.pn.pn.pn, %160 ], [ %146, %145 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %162

162:                                              ; preds = %161, %143
  %.pn125.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn125.pn.pn.pn.pn, %161 ], [ %144, %143 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  br label %163

163:                                              ; preds = %162, %141
  %.pn125.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn125.pn.pn.pn.pn.pn, %162 ], [ %142, %141 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br label %360

164:                                              ; preds = %101
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %180

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

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

170:                                              ; preds = %108
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %177

172:                                              ; preds = %110
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %176

174:                                              ; preds = %112
  %175 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br label %176

176:                                              ; preds = %174, %172
  %.pn133 = phi { ptr, i32 } [ %175, %174 ], [ %173, %172 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br label %177

177:                                              ; preds = %176, %170
  %.pn133.pn = phi { ptr, i32 } [ %.pn133, %176 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  br label %178

178:                                              ; preds = %177, %168
  %.pn133.pn.pn = phi { ptr, i32 } [ %.pn133.pn, %177 ], [ %169, %168 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br label %179

179:                                              ; preds = %178, %166
  %.pn133.pn.pn.pn = phi { ptr, i32 } [ %.pn133.pn.pn, %178 ], [ %167, %166 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  br label %180

180:                                              ; preds = %179, %164
  %.pn133.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn133.pn.pn.pn, %179 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  br label %360

.critedge:                                        ; preds = %94
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br label %181

181:                                              ; preds = %.critedge, %.critedge167.thread, %.critedge163.thread, %115
  %.0100 = phi double [ %116, %115 ], [ 0.000000e+00, %.critedge163.thread ], [ 0.000000e+00, %.critedge167.thread ], [ 0.000000e+00, %.critedge ]
  %182 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %183 = call noundef double @_ZNK10SimTKIpopt9IpoptData17info_alpha_primalEv(ptr noundef nonnull align 8 dereferenceable(864) %182)
  %184 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %185 = call noundef double @_ZNK10SimTKIpopt9IpoptData15info_alpha_dualEv(ptr noundef nonnull align 8 dereferenceable(864) %184)
  %186 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %187 = call noundef double @_ZNK10SimTKIpopt9IpoptData11info_regu_xEv(ptr noundef nonnull align 8 dereferenceable(864) %186)
  %188 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %189 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities16unscaled_trial_fEv(ptr noundef nonnull align 8 dereferenceable(2025) %188)
          to label %190 unwind label %204

190:                                              ; preds = %181
  %191 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %192 = call noundef i32 @_ZNK10SimTKIpopt9IpoptData13info_ls_countEv(ptr noundef nonnull align 8 dereferenceable(864) %191)
  %193 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %194 unwind label %206

194:                                              ; preds = %190
  %195 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_9IpoptDataEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull %195)
          to label %196 unwind label %206

196:                                              ; preds = %194
  %197 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull %197)
          to label %198 unwind label %208

198:                                              ; preds = %196
  %199 = load ptr, ptr %193, align 8, !tbaa !5
  %200 = getelementptr inbounds i8, ptr %199, i64 288
  %201 = load ptr, ptr %200, align 8
  %202 = invoke noundef zeroext i1 %201(ptr noundef nonnull align 8 dereferenceable(24) %193, i32 noundef 1, i32 noundef %75, double noundef %189, double noundef %77, double noundef %80, double noundef %83, double noundef %.0100, double noundef %187, double noundef %185, double noundef %183, i32 noundef %192, ptr noundef nonnull %21, ptr noundef nonnull %22)
          to label %203 unwind label %210

203:                                              ; preds = %198
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br i1 %202, label %213, label %359

204:                                              ; preds = %181
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %360

206:                                              ; preds = %194, %190
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %360

208:                                              ; preds = %196
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %212

210:                                              ; preds = %198
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  br label %212

212:                                              ; preds = %210, %208
  %.pn139 = phi { ptr, i32 } [ %211, %210 ], [ %209, %208 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br label %360

213:                                              ; preds = %203, %72
  %214 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %215 = call noundef i32 @_ZNK10SimTKIpopt9IpoptData10iter_countEv(ptr noundef nonnull align 8 dereferenceable(864) %214)
  %216 = getelementptr inbounds i8, ptr %0, i64 144
  %217 = load i32, ptr %216, align 8, !tbaa !8
  %.not = icmp slt i32 %215, %217
  br i1 %.not, label %218, label %359

218:                                              ; preds = %213
  %219 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %220 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %219)
          to label %221 unwind label %244

221:                                              ; preds = %218
  %222 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %223 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %222)
          to label %224 unwind label %246

224:                                              ; preds = %221
  %225 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %226 unwind label %246

226:                                              ; preds = %224
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %225, i32 noundef 5, i32 noundef 2, ptr noundef nonnull @.str.4, double noundef %223, double noundef %220)
          to label %227 unwind label %246

227:                                              ; preds = %226
  %228 = getelementptr inbounds i8, ptr %0, i64 136
  %229 = load double, ptr %228, align 8, !tbaa !23
  %230 = fmul double %223, %229
  %231 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  %232 = call noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %231)
  %233 = getelementptr inbounds i8, ptr %0, i64 64
  %234 = load double, ptr %233, align 8, !tbaa !24
  %235 = call noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %232, double noundef %234)
  %236 = fmul double %235, 1.000000e+02
  %237 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %230, double noundef %236)
  %238 = getelementptr inbounds i8, ptr %0, i64 148
  %239 = load i8, ptr %238, align 4, !tbaa !25, !range !26, !noundef !27
  %240 = trunc nuw i8 %239 to i1
  br i1 %240, label %241, label %250

241:                                              ; preds = %227
  %242 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %243 unwind label %248

243:                                              ; preds = %241
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef 5, i32 noundef 2, ptr noundef nonnull @.str.5)
          to label %292 unwind label %248

244:                                              ; preds = %218
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %360

246:                                              ; preds = %226, %224, %221
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %360

248:                                              ; preds = %292, %265, %263, %255, %254, %252, %243, %241
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %360

250:                                              ; preds = %227
  %251 = fcmp ogt double %220, %237
  br i1 %251, label %252, label %255

252:                                              ; preds = %250
  %253 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %254 unwind label %248

254:                                              ; preds = %252
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %253, i32 noundef 5, i32 noundef 2, ptr noundef nonnull @.str.6, double noundef %237)
          to label %292 unwind label %248

255:                                              ; preds = %250
  %256 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %257 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt25IpoptCalculatedQuantities15IsSquareProblemEv(ptr noundef nonnull align 8 dereferenceable(2025) %256)
          to label %258 unwind label %248

258:                                              ; preds = %255
  br i1 %257, label %259, label %266

259:                                              ; preds = %258
  %260 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  %261 = call noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %260)
  %262 = fcmp ugt double %220, %261
  br i1 %262, label %266, label %263

263:                                              ; preds = %259
  %264 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %265 unwind label %248

265:                                              ; preds = %263
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %264, i32 noundef 5, i32 noundef 2, ptr noundef nonnull @.str.7)
          to label %358 unwind label %248

266:                                              ; preds = %259, %258
  %267 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %268 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities17trial_barrier_objEv(ptr noundef nonnull align 8 dereferenceable(2025) %267)
          to label %269 unwind label %279

269:                                              ; preds = %266
  %270 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %271 unwind label %279

271:                                              ; preds = %269
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %270, i32 noundef 5, i32 noundef 2, ptr noundef nonnull @.str.8, double noundef %268)
          to label %272 unwind label %279

272:                                              ; preds = %271
  %273 = getelementptr inbounds i8, ptr %0, i64 152
  %274 = load ptr, ptr %273, align 8, !tbaa !28
  %275 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor27IsAcceptableToCurrentFilterEdd(ptr noundef nonnull align 8 dereferenceable(304) %274, double noundef %268, double noundef %220)
          to label %276 unwind label %279

276:                                              ; preds = %272
  br i1 %275, label %281, label %277

277:                                              ; preds = %276
  %278 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %.invoke unwind label %279

279:                                              ; preds = %.invoke, %291, %289, %285, %281, %277, %272, %271, %269, %266
  %280 = landingpad { ptr, i32 }
          cleanup
  br label %360

281:                                              ; preds = %276
  %282 = load ptr, ptr %273, align 8, !tbaa !28
  %283 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor28IsAcceptableToCurrentIterateEddb(ptr noundef nonnull align 8 dereferenceable(304) %282, double noundef %268, double noundef %220, i1 noundef zeroext true)
          to label %284 unwind label %279

284:                                              ; preds = %281
  br i1 %283, label %289, label %285

285:                                              ; preds = %284
  %286 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %.invoke unwind label %279

.invoke:                                          ; preds = %277, %285
  %287 = phi ptr [ %286, %285 ], [ %278, %277 ]
  %288 = phi ptr [ @.str.10, %285 ], [ @.str.9, %277 ]
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %287, i32 noundef 5, i32 noundef 2, ptr noundef nonnull %288)
          to label %292 unwind label %279

289:                                              ; preds = %284
  %290 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %291 unwind label %279

291:                                              ; preds = %289
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %290, i32 noundef 5, i32 noundef 2, ptr noundef nonnull @.str.11)
          to label %358 unwind label %279

292:                                              ; preds = %.invoke, %243, %254
  %293 = invoke noundef i32 @_ZN10SimTKIpopt31OptimalityErrorConvergenceCheck16CheckConvergenceEb(ptr noundef nonnull align 8 dereferenceable(132) %0, i1 noundef zeroext false)
          to label %294 unwind label %248

294:                                              ; preds = %292
  %295 = add i32 %293, -1
  %or.cond = icmp ult i32 %295, 2
  br i1 %or.cond, label %296, label %358

296:                                              ; preds = %294
  %297 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %298 = invoke noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %297, i32 noundef 2)
          to label %299 unwind label %324

299:                                              ; preds = %296
  %300 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %301 = call noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %300)
  %302 = fmul double %301, 1.000000e+02
  %303 = fcmp ugt double %298, %302
  br i1 %303, label %346, label %304

304:                                              ; preds = %299
  %305 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %306 = call noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %305)
  %307 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_9IpoptDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  %308 = call noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %307)
  %309 = fmul double %308, 1.000000e-01
  %310 = fcmp ogt double %306, %309
  br i1 %310, label %311, label %331

311:                                              ; preds = %304
  %312 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %313 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %314 = call noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %313)
  %315 = fmul double %314, 1.000000e-02
  call void @_ZN10SimTKIpopt9IpoptData7Set_tolEd(ptr noundef nonnull align 8 dereferenceable(864) %312, double noundef %315)
  %316 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %317 unwind label %324

317:                                              ; preds = %311
  %318 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %319 = call noundef double @_ZNK10SimTKIpopt9IpoptData3tolEv(ptr noundef nonnull align 8 dereferenceable(864) %318)
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %316, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.12, double noundef %319)
          to label %320 unwind label %324

320:                                              ; preds = %317
  %321 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %322 unwind label %326

322:                                              ; preds = %320
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %321, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %323 unwind label %328

323:                                              ; preds = %322
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %358

324:                                              ; preds = %333, %331, %317, %311, %296
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %360

326:                                              ; preds = %320
  %327 = landingpad { ptr, i32 }
          cleanup
  br label %330

328:                                              ; preds = %322
  %329 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %330

330:                                              ; preds = %328, %326
  %.pn152 = phi { ptr, i32 } [ %329, %328 ], [ %327, %326 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %360

331:                                              ; preds = %304
  %332 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %333 unwind label %324

333:                                              ; preds = %331
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %332, i32 noundef 2, i32 noundef 8, ptr noundef nonnull @.str.14)
          to label %334 unwind label %324

334:                                              ; preds = %333
  %335 = call ptr @__cxa_allocate_exception(i64 112) #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.15, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %336 unwind label %.thread173

336:                                              ; preds = %334
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %337 unwind label %340

337:                                              ; preds = %336
  invoke void @_ZN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %335, ptr noundef nonnull %25, ptr noundef nonnull %27, i32 noundef 213)
          to label %338 unwind label %342

338:                                              ; preds = %337
  invoke void @__cxa_throw(ptr nonnull %335, ptr nonnull @_ZTIN10SimTKIpopt39RESTORATION_CONVERGED_TO_FEASIBLE_POINTE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #8
          to label %364 unwind label %342

.thread173:                                       ; preds = %334
  %339 = landingpad { ptr, i32 }
          cleanup
  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
  br label %345

340:                                              ; preds = %336
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %344

342:                                              ; preds = %338, %337
  %.056 = phi i1 [ false, %338 ], [ true, %337 ]
  %343 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %344

344:                                              ; preds = %340, %342
  %.pn149 = phi { ptr, i32 } [ %343, %342 ], [ %341, %340 ]
  %.157 = phi i1 [ %.056, %342 ], [ true, %340 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  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
  br i1 %.157, label %345, label %360

345:                                              ; preds = %.thread173, %344
  %.pn149.pn176 = phi { ptr, i32 } [ %339, %.thread173 ], [ %.pn149, %344 ]
  call void @__cxa_free_exception(ptr %335) #7
  br label %360

346:                                              ; preds = %299
  %347 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %348 unwind label %.thread177

348:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %349 unwind label %352

349:                                              ; preds = %348
  invoke void @_ZN10SimTKIpopt18LOCALLY_INFEASIBLEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %347, ptr noundef nonnull %29, ptr noundef nonnull %31, i32 noundef 218)
          to label %350 unwind label %354

350:                                              ; preds = %349
  invoke void @__cxa_throw(ptr nonnull %347, ptr nonnull @_ZTIN10SimTKIpopt18LOCALLY_INFEASIBLEE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #8
          to label %364 unwind label %354

.thread177:                                       ; preds = %346
  %351 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #7
  br label %357

352:                                              ; preds = %348
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %356

354:                                              ; preds = %350, %349
  %.0 = phi i1 [ false, %350 ], [ true, %349 ]
  %355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %356

356:                                              ; preds = %352, %354
  %.pn146 = phi { ptr, i32 } [ %355, %354 ], [ %353, %352 ]
  %.1 = phi i1 [ %.0, %354 ], [ true, %352 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #7
  br i1 %.1, label %357, label %360

357:                                              ; preds = %.thread177, %356
  %.pn146.pn180 = phi { ptr, i32 } [ %351, %.thread177 ], [ %.pn146, %356 ]
  call void @__cxa_free_exception(ptr %347) #7
  br label %360

358:                                              ; preds = %265, %291, %323, %294
  %.2104 = phi i32 [ 0, %323 ], [ %293, %294 ], [ 1, %291 ], [ 1, %265 ]
  store i8 0, ptr %238, align 4, !tbaa !25
  br label %359

359:                                              ; preds = %213, %203, %358
  %.160 = phi i32 [ %.2104, %358 ], [ 5, %203 ], [ 3, %213 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7
  ret i32 %.160

360:                                              ; preds = %244, %248, %279, %356, %357, %344, %345, %330, %324, %246, %137, %163, %180, %206, %212, %204, %139, %136, %128, %122
  %.pn152.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %123, %122 ], [ %.pn122.pn, %136 ], [ %.pn120, %128 ], [ %138, %137 ], [ %140, %139 ], [ %.pn133.pn.pn.pn.pn, %180 ], [ %.pn125.pn.pn.pn.pn.pn.pn, %163 ], [ %205, %204 ], [ %.pn139, %212 ], [ %207, %206 ], [ %245, %244 ], [ %247, %246 ], [ %249, %248 ], [ %280, %279 ], [ %.pn152, %330 ], [ %325, %324 ], [ %.pn149.pn176, %345 ], [ %.pn149, %344 ], [ %.pn146.pn180, %357 ], [ %.pn146, %356 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  br label %361

361:                                              ; preds = %360, %121
  %.pn152.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn152.pn.pn.pn.pn.pn, %360 ], [ %.pn118, %121 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  br label %362

362:                                              ; preds = %361, %53
  %.pn152.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn152.pn.pn.pn.pn.pn.pn, %361 ], [ %.pn, %53 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #7
  br label %363

363:                                              ; preds = %362, %47
  %.pn152.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn152.pn.pn.pn.pn.pn.pn.pn, %362 ], [ %48, %47 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_9IpoptDataEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7
  resume { ptr, i32 } %.pn152.pn.pn.pn.pn.pn.pn.pn.pn

364:                                              ; preds = %350, %338
  unreachable
}

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.33") align 8, ptr noundef nonnull align 8 dereferenceable(265), i32 noundef) local_unnamed_addr #2 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 #1 align 2

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

; 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 #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 #2 align 2

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

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

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

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

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

declare noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor27IsAcceptableToCurrentFilterEdd(ptr noundef nonnull align 8 dereferenceable(304), double noundef, double noundef) local_unnamed_addr #5

declare noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor28IsAcceptableToCurrentIterateEddb(ptr noundef nonnull align 8 dereferenceable(304), double noundef, double noundef, i1 noundef zeroext) local_unnamed_addr #5

declare noundef i32 @_ZN10SimTKIpopt31OptimalityErrorConvergenceCheck16CheckConvergenceEb(ptr noundef nonnull align 8 dereferenceable(132), i1 noundef zeroext) unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nofree nounwind willreturn memory(read) }
attributes #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !14, i64 144}
!9 = !{!"_ZTSN10SimTKIpopt27RestoFilterConvergenceCheckE", !10, i64 0, !22, i64 136, !14, i64 144, !21, i64 148, !17, i64 152}
!10 = !{!"_ZTSN10SimTKIpopt31OptimalityErrorConvergenceCheckE", !11, i64 0, !14, i64 52, !22, i64 56, !22, i64 64, !22, i64 72, !14, i64 80, !22, i64 88, !22, i64 96, !22, i64 104, !22, i64 112, !22, i64 120, !14, i64 128}
!11 = !{!"_ZTSN10SimTKIpopt16ConvergenceCheckE", !12, i64 0}
!12 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !13, i64 0, !16, i64 16, !18, i64 24, !19, i64 32, !20, i64 40, !21, i64 48}
!13 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !14, i64 8}
!14 = !{!"int", !15, i64 0}
!15 = !{!"omnipotent char", !7, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !17, i64 0}
!17 = !{!"any pointer", !15, i64 0}
!18 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !17, i64 0}
!19 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !17, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !17, i64 0}
!21 = !{!"bool", !15, i64 0}
!22 = !{!"double", !15, i64 0}
!23 = !{!9, !22, i64 136}
!24 = !{!10, !22, i64 64}
!25 = !{!9, !21, i64 148}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!9, !17, i64 152}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass