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

; 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.54" = type { ptr }
%"class.SimTKIpopt::SmartPtr.55" = type { ptr }
%"class.SimTKIpopt::SmartPtr.56" = 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.17" = type { i8 }
%"class.SimTKIpopt::SmartPtr.57" = type { ptr }
%"class.SimTKIpopt::SmartPtr.58" = type { ptr }
%"class.SimTKIpopt::SmartPtr.61" = type { ptr }
%"class.SimTKIpopt::SmartPtr.72" = type { ptr }
%"class.SimTKIpopt::SmartPtr.73" = type { ptr }
%"class.SimTKIpopt::SmartPtr.75" = type { ptr }
%"class.SimTKIpopt::SmartPtr.76" = type { ptr }
%"class.SimTKIpopt::SmartPtr.77" = type { ptr }
%"class.SimTKIpopt::SmartPtr.78" = type { ptr }
%"class.SimTKIpopt::SmartPtr.79" = type { ptr }
%"class.SimTKIpopt::SmartPtr.83" = type { ptr }
%"class.SimTKIpopt::SmartPtr.84" = type { ptr }
%"class.SimTKIpopt::SmartPtr.85" = type { ptr }
%"class.SimTKIpopt::SmartPtr.86" = type { ptr }
%"class.SimTKIpopt::SmartPtr.87" = type { ptr }
%"class.SimTKIpopt::SmartPtr.93" = type { ptr }
%"class.SimTKIpopt::SmartPtr.94" = type { ptr }
%"class.SimTKIpopt::SmartPtr.95" = type { ptr }

@.str.5 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [97 x i8], align 1
@_ZTIN10SimTKIpopt14OPTION_INVALIDE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.57 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [7 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

declare noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10SimTKIpopt16AlgorithmBuilder19BuildBasicAlgorithmERKNS_10JournalistERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.54") align 8 %0, ptr noundef nonnull align 8 dereferenceable(12) %1, ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %4) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %"class.SimTKIpopt::SmartPtr.55", align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.SimTKIpopt::SmartPtr.56", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.17", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.17", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.17", align 1
  %22 = alloca i1, align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.17", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.17", align 1
  %27 = alloca i1, align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator.17", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.17", align 1
  %32 = alloca i1, align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.17", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.17", align 1
  %37 = alloca i1, align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator.17", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator.17", align 1
  %42 = alloca i1, align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.17", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator.17", align 1
  %47 = alloca i1, align 1
  %48 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator.17", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator.17", align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator.17", align 1
  %56 = alloca i1, align 1
  %57 = alloca %"class.SimTKIpopt::SmartPtr.58", align 8
  %58 = alloca %"class.SimTKIpopt::SmartPtr.56", align 8
  %59 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %60 = alloca i1, align 1
  %61 = alloca %"class.SimTKIpopt::SmartPtr.61", align 8
  %62 = alloca i32, align 4
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator.17", align 1
  %65 = alloca i32, align 4
  %66 = alloca %"class.SimTKIpopt::SmartPtr.61", align 8
  %67 = alloca %"class.SimTKIpopt::SmartPtr.72", align 8
  %68 = alloca %"class.SimTKIpopt::SmartPtr.73", align 8
  %69 = alloca %"class.SimTKIpopt::SmartPtr.75", align 8
  %70 = alloca %"class.SimTKIpopt::SmartPtr.76", align 8
  %71 = alloca %"class.SimTKIpopt::SmartPtr.76", align 8
  %72 = alloca %"class.SimTKIpopt::SmartPtr.61", align 8
  %73 = alloca %"class.SimTKIpopt::SmartPtr.72", align 8
  %74 = alloca %"class.SimTKIpopt::SmartPtr.73", align 8
  %75 = alloca %"class.SimTKIpopt::SmartPtr.77", align 8
  %76 = alloca %"class.SimTKIpopt::SmartPtr.78", align 8
  %77 = alloca %"class.SimTKIpopt::SmartPtr.79", align 8
  %78 = alloca %"class.SimTKIpopt::SmartPtr.73", align 8
  %79 = alloca i1, align 1
  %80 = alloca %"class.SimTKIpopt::SmartPtr.83", align 8
  %81 = alloca %"class.SimTKIpopt::SmartPtr.84", align 8
  %82 = alloca %"class.SimTKIpopt::SmartPtr.85", align 8
  %83 = alloca %"class.SimTKIpopt::SmartPtr.55", align 8
  %84 = alloca i1, align 1
  %85 = alloca %"class.SimTKIpopt::SmartPtr.86", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::allocator.17", align 1
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca i32, align 4
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::allocator.17", align 1
  %93 = alloca i32, align 4
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::allocator.17", align 1
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::allocator.17", align 1
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.SimTKIpopt::SmartPtr.83", align 8
  %103 = alloca i1, align 1
  %104 = alloca %"class.SimTKIpopt::SmartPtr.87", align 8
  %105 = alloca %"class.SimTKIpopt::SmartPtr.87", align 8
  %106 = alloca %"class.SimTKIpopt::SmartPtr.83", align 8
  %107 = alloca i1, align 1
  %108 = alloca %"class.SimTKIpopt::SmartPtr.75", align 8
  %109 = alloca %"class.SimTKIpopt::SmartPtr.76", align 8
  %110 = alloca %"class.SimTKIpopt::SmartPtr.93", align 8
  %111 = alloca %"class.SimTKIpopt::SmartPtr.94", align 8
  %112 = alloca %"class.SimTKIpopt::SmartPtr.95", align 8
  %113 = alloca %"class.SimTKIpopt::SmartPtr.54", align 8
  %114 = alloca %"class.SimTKIpopt::SmartPtr.83", align 8
  %115 = alloca %"class.SimTKIpopt::SmartPtr.86", align 8
  %116 = alloca %"class.SimTKIpopt::SmartPtr.55", align 8
  %117 = alloca i1, align 1
  %118 = alloca %"class.SimTKIpopt::SmartPtr.85", align 8
  %119 = alloca %"class.SimTKIpopt::SmartPtr.79", align 8
  %120 = alloca %"class.SimTKIpopt::SmartPtr.73", align 8
  %121 = alloca i1, align 1
  %122 = alloca %"class.SimTKIpopt::SmartPtr.83", align 8
  %123 = alloca %"class.SimTKIpopt::SmartPtr.84", align 8
  %124 = alloca %"class.SimTKIpopt::SmartPtr.85", align 8
  %125 = alloca i1, align 1
  %126 = alloca %"class.SimTKIpopt::SmartPtr.86", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator.17", align 1
  %130 = alloca i32, align 4
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::allocator.17", align 1
  %133 = alloca i32, align 4
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::allocator.17", align 1
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::allocator.17", align 1
  %140 = alloca %"class.SimTKIpopt::SmartPtr.83", align 8
  %141 = alloca i1, align 1
  %142 = alloca %"class.SimTKIpopt::SmartPtr.87", align 8
  %143 = alloca %"class.SimTKIpopt::SmartPtr.87", align 8
  %144 = alloca %"class.SimTKIpopt::SmartPtr.83", align 8
  %145 = alloca i1, align 1
  %146 = alloca %"class.SimTKIpopt::SmartPtr.94", align 8
  %147 = alloca %"class.SimTKIpopt::SmartPtr.95", align 8
  %148 = alloca i1, align 1
  %149 = alloca %"class.SimTKIpopt::SmartPtr.83", align 8
  %150 = alloca i1, align 1
  store ptr %0, ptr %6, align 8
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %151 = load ptr, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %152 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 136) #8
  invoke void @_ZN10SimTKIpopt31OptimalityErrorConvergenceCheckC1Ev(ptr noundef nonnull align 8 dereferenceable(132) %152)
          to label %153 unwind label %167

153:                                              ; preds = %5
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef %152)
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %154 unwind label %171

154:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  %155 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %156 unwind label %175

156:                                              ; preds = %154
  %157 = load ptr, ptr %10, align 8, !tbaa !5
  %158 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %155, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %157)
          to label %159 unwind label %179

159:                                              ; preds = %156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #7
  %160 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.8)
          to label %161 unwind label %184

161:                                              ; preds = %159
  br i1 %160, label %162, label %205

162:                                              ; preds = %161
  store i1 true, ptr %22, align 1
  %163 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %164 unwind label %188

164:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %165 unwind label %192

165:                                              ; preds = %164
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %163, ptr noundef %18, ptr noundef %20, i32 noundef 186)
          to label %166 unwind label %196

166:                                              ; preds = %165
  store i1 false, ptr %22, align 1
  invoke void @__cxa_throw(ptr %163, ptr @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %1488 unwind label %196

167:                                              ; preds = %5
  %168 = landingpad { ptr, i32 }
          cleanup
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %12, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %152, i64 noundef 136) #10
  br label %1482

171:                                              ; preds = %153
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %12, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %13, align 4
  br label %1481

175:                                              ; preds = %154
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %12, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %13, align 4
  br label %183

179:                                              ; preds = %156
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %12, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %183

183:                                              ; preds = %179, %175
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #7
  br label %1480

184:                                              ; preds = %336, %333, %330, %305, %280, %255, %230, %205, %159
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %12, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %13, align 4
  br label %1480

188:                                              ; preds = %162
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %12, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %13, align 4
  br label %201

192:                                              ; preds = %164
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %12, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %13, align 4
  br label %200

196:                                              ; preds = %166, %165
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %12, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %200

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

201:                                              ; preds = %200, %188
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  %202 = load i1, ptr %22, align 1
  br i1 %202, label %203, label %204

203:                                              ; preds = %201
  call void @__cxa_free_exception(ptr %163) #7
  br label %204

204:                                              ; preds = %203, %201
  br label %1480

205:                                              ; preds = %161
  %206 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.10)
          to label %207 unwind label %184

207:                                              ; preds = %205
  br i1 %206, label %208, label %230

208:                                              ; preds = %207
  store i1 true, ptr %27, align 1
  %209 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.57, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %210 unwind label %213

210:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %211 unwind label %217

211:                                              ; preds = %210
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %209, ptr noundef %23, ptr noundef %25, i32 noundef 192)
          to label %212 unwind label %221

212:                                              ; preds = %211
  store i1 false, ptr %27, align 1
  invoke void @__cxa_throw(ptr %209, ptr @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %1488 unwind label %221

213:                                              ; preds = %208
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %12, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %13, align 4
  br label %226

217:                                              ; preds = %210
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %12, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %13, align 4
  br label %225

221:                                              ; preds = %212, %211
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %12, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %225

225:                                              ; preds = %221, %217
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %226

226:                                              ; preds = %225, %213
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  %227 = load i1, ptr %27, align 1
  br i1 %227, label %228, label %229

228:                                              ; preds = %226
  call void @__cxa_free_exception(ptr %209) #7
  br label %229

229:                                              ; preds = %228, %226
  br label %1480

230:                                              ; preds = %207
  %231 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.12)
          to label %232 unwind label %184

232:                                              ; preds = %230
  br i1 %231, label %233, label %255

233:                                              ; preds = %232
  store i1 true, ptr %32, align 1
  %234 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %235 unwind label %238

235:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %236 unwind label %242

236:                                              ; preds = %235
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %234, ptr noundef %28, ptr noundef %30, i32 noundef 197)
          to label %237 unwind label %246

237:                                              ; preds = %236
  store i1 false, ptr %32, align 1
  invoke void @__cxa_throw(ptr %234, ptr @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %1488 unwind label %246

238:                                              ; preds = %233
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %12, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %13, align 4
  br label %251

242:                                              ; preds = %235
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %12, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %13, align 4
  br label %250

246:                                              ; preds = %237, %236
  %247 = landingpad { ptr, i32 }
          cleanup
  %248 = extractvalue { ptr, i32 } %247, 0
  store ptr %248, ptr %12, align 8
  %249 = extractvalue { ptr, i32 } %247, 1
  store i32 %249, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %250

250:                                              ; preds = %246, %242
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %251

251:                                              ; preds = %250, %238
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  %252 = load i1, ptr %32, align 1
  br i1 %252, label %253, label %254

253:                                              ; preds = %251
  call void @__cxa_free_exception(ptr %234) #7
  br label %254

254:                                              ; preds = %253, %251
  br label %1480

255:                                              ; preds = %232
  %256 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.14)
          to label %257 unwind label %184

257:                                              ; preds = %255
  br i1 %256, label %258, label %280

258:                                              ; preds = %257
  store i1 true, ptr %37, align 1
  %259 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.59, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %260 unwind label %263

260:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %261 unwind label %267

261:                                              ; preds = %260
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %259, ptr noundef %33, ptr noundef %35, i32 noundef 202)
          to label %262 unwind label %271

262:                                              ; preds = %261
  store i1 false, ptr %37, align 1
  invoke void @__cxa_throw(ptr %259, ptr @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %1488 unwind label %271

263:                                              ; preds = %258
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %12, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %13, align 4
  br label %276

267:                                              ; preds = %260
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %12, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %13, align 4
  br label %275

271:                                              ; preds = %262, %261
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %12, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %275

275:                                              ; preds = %271, %267
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %276

276:                                              ; preds = %275, %263
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  %277 = load i1, ptr %37, align 1
  br i1 %277, label %278, label %279

278:                                              ; preds = %276
  call void @__cxa_free_exception(ptr %259) #7
  br label %279

279:                                              ; preds = %278, %276
  br label %1480

280:                                              ; preds = %257
  %281 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.60)
          to label %282 unwind label %184

282:                                              ; preds = %280
  br i1 %281, label %283, label %305

283:                                              ; preds = %282
  store i1 true, ptr %42, align 1
  %284 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.61, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %285 unwind label %288

285:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %286 unwind label %292

286:                                              ; preds = %285
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef %38, ptr noundef %40, i32 noundef 208)
          to label %287 unwind label %296

287:                                              ; preds = %286
  store i1 false, ptr %42, align 1
  invoke void @__cxa_throw(ptr %284, ptr @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %1488 unwind label %296

288:                                              ; preds = %283
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %12, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %13, align 4
  br label %301

292:                                              ; preds = %285
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %12, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %13, align 4
  br label %300

296:                                              ; preds = %287, %286
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %12, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %300

300:                                              ; preds = %296, %292
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %301

301:                                              ; preds = %300, %288
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  %302 = load i1, ptr %42, align 1
  br i1 %302, label %303, label %304

303:                                              ; preds = %301
  call void @__cxa_free_exception(ptr %284) #7
  br label %304

304:                                              ; preds = %303, %301
  br label %1480

305:                                              ; preds = %282
  %306 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.16)
          to label %307 unwind label %184

307:                                              ; preds = %305
  br i1 %306, label %308, label %330

308:                                              ; preds = %307
  store i1 true, ptr %47, align 1
  %309 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.62, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %310 unwind label %313

310:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %311 unwind label %317

311:                                              ; preds = %310
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %309, ptr noundef %43, ptr noundef %45, i32 noundef 214)
          to label %312 unwind label %321

312:                                              ; preds = %311
  store i1 false, ptr %47, align 1
  invoke void @__cxa_throw(ptr %309, ptr @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %1488 unwind label %321

313:                                              ; preds = %308
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %12, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %13, align 4
  br label %326

317:                                              ; preds = %310
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %12, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %13, align 4
  br label %325

321:                                              ; preds = %312, %311
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %12, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %325

325:                                              ; preds = %321, %317
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %326

326:                                              ; preds = %325, %313
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #7
  %327 = load i1, ptr %47, align 1
  br i1 %327, label %328, label %329

328:                                              ; preds = %326
  call void @__cxa_free_exception(ptr %309) #7
  br label %329

329:                                              ; preds = %328, %326
  br label %1480

330:                                              ; preds = %307
  %331 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.7)
          to label %332 unwind label %184

332:                                              ; preds = %330
  br i1 %331, label %333, label %343

333:                                              ; preds = %332
  %334 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 120) #8
          to label %335 unwind label %184

335:                                              ; preds = %333
  invoke void @_ZN10SimTKIpopt21LapackSolverInterfaceC1Ev(ptr noundef nonnull align 8 dereferenceable(113) %334)
          to label %336 unwind label %339

336:                                              ; preds = %335
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef %334)
          to label %338 unwind label %184

338:                                              ; preds = %336
  br label %343

339:                                              ; preds = %335
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %12, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %334, i64 noundef 120) #10
  br label %1480

343:                                              ; preds = %338, %332
  br label %344

344:                                              ; preds = %343
  br label %345

345:                                              ; preds = %344
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  br label %348

348:                                              ; preds = %347
  br label %349

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

350:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  %351 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %352 unwind label %370

352:                                              ; preds = %350
  %353 = load ptr, ptr %10, align 8, !tbaa !5
  %354 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %351, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %355 unwind label %374

355:                                              ; preds = %352
  %356 = xor i1 %354, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  br i1 %356, label %357, label %384

357:                                              ; preds = %355
  %358 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.8)
          to label %359 unwind label %379

359:                                              ; preds = %357
  br i1 %358, label %360, label %383

360:                                              ; preds = %359
  %361 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.10)
          to label %362 unwind label %379

362:                                              ; preds = %360
  br i1 %361, label %363, label %383

363:                                              ; preds = %362
  %364 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.23)
          to label %365 unwind label %379

365:                                              ; preds = %363
  br label %383

366:                                              ; preds = %349
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %12, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %13, align 4
  br label %1479

370:                                              ; preds = %350
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %12, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %13, align 4
  br label %378

374:                                              ; preds = %352
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %12, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %378

378:                                              ; preds = %374, %370
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  br label %1478

379:                                              ; preds = %384, %363, %360, %357
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %12, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %13, align 4
  br label %1478

383:                                              ; preds = %365, %362, %359
  br label %384

384:                                              ; preds = %383, %355
  %385 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.22)
          to label %386 unwind label %379

386:                                              ; preds = %384
  br i1 %385, label %387, label %409

387:                                              ; preds = %386
  store i1 true, ptr %56, align 1
  %388 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.63, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %389 unwind label %392

389:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %390 unwind label %396

390:                                              ; preds = %389
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %388, ptr noundef %52, ptr noundef %54, i32 noundef 234)
          to label %391 unwind label %400

391:                                              ; preds = %390
  store i1 false, ptr %56, align 1
  invoke void @__cxa_throw(ptr %388, ptr @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %1488 unwind label %400

392:                                              ; preds = %387
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %12, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %13, align 4
  br label %405

396:                                              ; preds = %389
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %12, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %13, align 4
  br label %404

400:                                              ; preds = %391, %390
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %12, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %404

404:                                              ; preds = %400, %396
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %405

405:                                              ; preds = %404, %392
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #7
  %406 = load i1, ptr %56, align 1
  br i1 %406, label %407, label %408

407:                                              ; preds = %405
  call void @__cxa_free_exception(ptr %388) #7
  br label %408

408:                                              ; preds = %407, %405
  br label %1478

409:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %410 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 144) #8
          to label %411 unwind label %439

411:                                              ; preds = %409
  store i1 true, ptr %60, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %412 unwind label %443

412:                                              ; preds = %411
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %413 unwind label %447

413:                                              ; preds = %412
  invoke void @_ZN10SimTKIpopt16TSymLinearSolverC1ENS_8SmartPtrINS_30SparseSymLinearSolverInterfaceEEENS1_INS_17TSymScalingMethodEEE(ptr noundef nonnull align 8 dereferenceable(141) %410, ptr noundef %58, ptr noundef %59)
          to label %414 unwind label %451

414:                                              ; preds = %413
  store i1 false, ptr %60, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15SymLinearSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef %410)
          to label %415 unwind label %451

415:                                              ; preds = %414
  call void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  %416 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 240) #8
          to label %417 unwind label %460

417:                                              ; preds = %415
  %418 = invoke noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15SymLinearSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %419 unwind label %464

419:                                              ; preds = %417
  invoke void @_ZN10SimTKIpopt18StdAugSystemSolverC1ERNS_15SymLinearSolverE(ptr noundef nonnull align 8 dereferenceable(233) %416, ptr noundef nonnull align 8 dereferenceable(49) %418)
          to label %420 unwind label %464

420:                                              ; preds = %419
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef %416)
          to label %421 unwind label %460

421:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  %422 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %423 unwind label %468

423:                                              ; preds = %421
  %424 = load ptr, ptr %10, align 8, !tbaa !5
  %425 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %422, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 4 dereferenceable(4) %62, ptr noundef nonnull align 8 dereferenceable(32) %424)
          to label %426 unwind label %472

426:                                              ; preds = %423
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  %427 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %427, ptr %65, align 4, !tbaa !11
  %428 = load i32, ptr %65, align 4, !tbaa !11
  %429 = icmp eq i32 %428, 1
  br i1 %429, label %430, label %490

430:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  %431 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #8
          to label %432 unwind label %477

432:                                              ; preds = %430
  %433 = invoke noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %434 unwind label %481

434:                                              ; preds = %432
  invoke void @_ZN10SimTKIpopt22LowRankAugSystemSolverC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(204) %431, ptr noundef nonnull align 8 dereferenceable(49) %433)
          to label %435 unwind label %481

435:                                              ; preds = %434
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef %431)
          to label %436 unwind label %477

436:                                              ; preds = %435
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %438 unwind label %485

438:                                              ; preds = %436
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  br label %490

439:                                              ; preds = %409
  %440 = landingpad { ptr, i32 }
          cleanup
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %12, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %13, align 4
  br label %1477

443:                                              ; preds = %411
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %12, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %13, align 4
  br label %456

447:                                              ; preds = %412
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %12, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %13, align 4
  br label %455

451:                                              ; preds = %414, %413
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %12, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #7
  br label %455

455:                                              ; preds = %451, %447
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #7
  br label %456

456:                                              ; preds = %455, %443
  %457 = load i1, ptr %60, align 1
  br i1 %457, label %458, label %459

458:                                              ; preds = %456
  call void @_ZdlPvm(ptr noundef %410, i64 noundef 144) #10
  br label %459

459:                                              ; preds = %458, %456
  br label %1477

460:                                              ; preds = %420, %415
  %461 = landingpad { ptr, i32 }
          cleanup
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %12, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %13, align 4
  br label %1476

464:                                              ; preds = %419, %417
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %12, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %416, i64 noundef 240) #10
  br label %1476

468:                                              ; preds = %421
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %12, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %13, align 4
  br label %476

472:                                              ; preds = %423
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %12, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %476

476:                                              ; preds = %472, %468
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #7
  br label %1475

477:                                              ; preds = %435, %430
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %12, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %13, align 4
  br label %489

481:                                              ; preds = %434, %432
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %12, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %431, i64 noundef 208) #10
  br label %489

485:                                              ; preds = %436
  %486 = landingpad { ptr, i32 }
          cleanup
  %487 = extractvalue { ptr, i32 } %486, 0
  store ptr %487, ptr %12, align 8
  %488 = extractvalue { ptr, i32 } %486, 1
  store i32 %488, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #7
  br label %489

489:                                              ; preds = %485, %481, %477
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  br label %1474

490:                                              ; preds = %438, %426
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  %491 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 216) #8
          to label %492 unwind label %584

492:                                              ; preds = %490
  invoke void @_ZN10SimTKIpopt21PDPerturbationHandlerC1Ev(ptr noundef nonnull align 8 dereferenceable(216) %491)
          to label %493 unwind label %588

493:                                              ; preds = %492
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef %491)
          to label %494 unwind label %584

494:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #7
  %495 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 136) #8
          to label %496 unwind label %592

496:                                              ; preds = %494
  %497 = invoke noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %498 unwind label %596

498:                                              ; preds = %496
  %499 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %500 unwind label %596

500:                                              ; preds = %498
  invoke void @_ZN10SimTKIpopt17PDFullSpaceSolverC1ERNS_15AugSystemSolverERNS_21PDPerturbationHandlerE(ptr noundef nonnull align 8 dereferenceable(136) %495, ptr noundef nonnull align 8 dereferenceable(49) %497, ptr noundef nonnull align 8 dereferenceable(216) %499)
          to label %501 unwind label %596

501:                                              ; preds = %500
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef %495)
          to label %502 unwind label %592

502:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #7
  %503 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #8
          to label %504 unwind label %600

504:                                              ; preds = %502
  %505 = invoke noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %506 unwind label %604

506:                                              ; preds = %504
  invoke void @_ZN10SimTKIpopt22LeastSquareMultipliersC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(64) %503, ptr noundef nonnull align 8 dereferenceable(49) %505)
          to label %507 unwind label %604

507:                                              ; preds = %506
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef %503)
          to label %508 unwind label %600

508:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  %509 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #8
          to label %510 unwind label %608

510:                                              ; preds = %508
  invoke void @_ZN10SimTKIpopt27WarmStartIterateInitializerC1Ev(ptr noundef nonnull align 8 dereferenceable(97) %509)
          to label %511 unwind label %612

511:                                              ; preds = %510
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef %509)
          to label %512 unwind label %608

512:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #7
  %513 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 112) #8
          to label %514 unwind label %616

514:                                              ; preds = %512
  invoke void @_ZN10SimTKIpopt25DefaultIterateInitializerC1ERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEERKNS1_INS_18IterateInitializerEEE(ptr noundef nonnull align 8 dereferenceable(112) %513, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %515 unwind label %620

515:                                              ; preds = %514
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef %513)
          to label %516 unwind label %616

516:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %517 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 288) #8
          to label %518 unwind label %624

518:                                              ; preds = %516
  %519 = invoke noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %520 unwind label %628

520:                                              ; preds = %518
  invoke void @_ZN10SimTKIpopt20AugRestoSystemSolverC1ERNS_15AugSystemSolverEb(ptr noundef nonnull align 8 dereferenceable(281) %517, ptr noundef nonnull align 8 dereferenceable(49) %519, i1 noundef zeroext true)
          to label %521 unwind label %628

521:                                              ; preds = %520
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef %517)
          to label %522 unwind label %624

522:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %523 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 216) #8
          to label %524 unwind label %632

524:                                              ; preds = %522
  invoke void @_ZN10SimTKIpopt21PDPerturbationHandlerC1Ev(ptr noundef nonnull align 8 dereferenceable(216) %523)
          to label %525 unwind label %636

525:                                              ; preds = %524
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef %523)
          to label %526 unwind label %632

526:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  %527 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 136) #8
          to label %528 unwind label %640

528:                                              ; preds = %526
  %529 = invoke noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %530 unwind label %644

530:                                              ; preds = %528
  %531 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %532 unwind label %644

532:                                              ; preds = %530
  invoke void @_ZN10SimTKIpopt17PDFullSpaceSolverC1ERNS_15AugSystemSolverERNS_21PDPerturbationHandlerE(ptr noundef nonnull align 8 dereferenceable(136) %527, ptr noundef nonnull align 8 dereferenceable(49) %529, ptr noundef nonnull align 8 dereferenceable(216) %531)
          to label %533 unwind label %644

533:                                              ; preds = %532
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef %527)
          to label %534 unwind label %640

534:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #7
  %535 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 160) #8
          to label %536 unwind label %648

536:                                              ; preds = %534
  invoke void @_ZN10SimTKIpopt27RestoFilterConvergenceCheckC1Ev(ptr noundef nonnull align 8 dereferenceable(160) %535)
          to label %537 unwind label %652

537:                                              ; preds = %536
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_27RestoFilterConvergenceCheckEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef %535)
          to label %538 unwind label %648

538:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #7
  %539 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #8
          to label %540 unwind label %656

540:                                              ; preds = %538
  invoke void @_ZN10SimTKIpopt21RestoRestorationPhaseC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %539)
          to label %541 unwind label %660

541:                                              ; preds = %540
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_21RestoRestorationPhaseEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef %539)
          to label %542 unwind label %656

542:                                              ; preds = %541
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #7
  %543 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 304) #8
          to label %544 unwind label %664

544:                                              ; preds = %542
  store i1 true, ptr %79, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #7
  %545 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_14PDSystemSolverEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %546 unwind label %668

546:                                              ; preds = %544
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef %545)
          to label %547 unwind label %668

547:                                              ; preds = %546
  invoke void @_ZN10SimTKIpopt16FilterLSAcceptorC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(304) %543, ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %548 unwind label %672

548:                                              ; preds = %547
  store i1 false, ptr %79, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef %543)
          to label %549 unwind label %672

549:                                              ; preds = %548
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #7
  %550 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 224) #8
          to label %551 unwind label %680

551:                                              ; preds = %549
  store i1 true, ptr %84, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  %552 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_16FilterLSAcceptorEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %553 unwind label %684

553:                                              ; preds = %551
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef %552)
          to label %554 unwind label %684

554:                                              ; preds = %553
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %555 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_21RestoRestorationPhaseEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %556 unwind label %688

556:                                              ; preds = %554
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef %555)
          to label %557 unwind label %688

557:                                              ; preds = %556
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #7
  %558 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_27RestoFilterConvergenceCheckEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %559 unwind label %692

559:                                              ; preds = %557
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef %558)
          to label %560 unwind label %692

560:                                              ; preds = %559
  invoke void @_ZN10SimTKIpopt22BacktrackingLineSearchC1ERKNS_8SmartPtrINS_22BacktrackingLSAcceptorEEERKNS1_INS_16RestorationPhaseEEERKNS1_INS_16ConvergenceCheckEEE(ptr noundef nonnull align 8 dereferenceable(224) %550, ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %561 unwind label %696

561:                                              ; preds = %560
  store i1 false, ptr %84, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef %550)
          to label %562 unwind label %696

562:                                              ; preds = %561
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %563 unwind label %706

563:                                              ; preds = %562
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  %564 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %565 unwind label %710

565:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #7
  %566 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef @.str.65, ptr noundef nonnull align 8 dereferenceable(32) %566)
          to label %567 unwind label %714

567:                                              ; preds = %565
  %568 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %564, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %569 unwind label %718

569:                                              ; preds = %567
  %570 = xor i1 %568, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #7
  br i1 %570, label %571, label %740

571:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #7
  %572 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %573 unwind label %724

573:                                              ; preds = %571
  %574 = load ptr, ptr %10, align 8, !tbaa !5
  %575 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %572, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 4 dereferenceable(4) %90, ptr noundef nonnull align 8 dereferenceable(32) %574)
          to label %576 unwind label %728

576:                                              ; preds = %573
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  br i1 %575, label %577, label %738

577:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #7
  %578 = load i32, ptr %90, align 4, !tbaa !9
  store i32 %578, ptr %93, align 4, !tbaa !11
  %579 = load i32, ptr %93, align 4, !tbaa !11
  %580 = icmp eq i32 %579, 1
  br i1 %580, label %581, label %737

581:                                              ; preds = %577
  %582 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.38)
          to label %583 unwind label %733

583:                                              ; preds = %581
  br label %737

584:                                              ; preds = %493, %490
  %585 = landingpad { ptr, i32 }
          cleanup
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %12, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %13, align 4
  br label %1473

588:                                              ; preds = %492
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %12, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %491, i64 noundef 216) #10
  br label %1473

592:                                              ; preds = %501, %494
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %12, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %13, align 4
  br label %1472

596:                                              ; preds = %500, %498, %496
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %12, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %495, i64 noundef 136) #10
  br label %1472

600:                                              ; preds = %507, %502
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %12, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %13, align 4
  br label %1471

604:                                              ; preds = %506, %504
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %12, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %503, i64 noundef 64) #10
  br label %1471

608:                                              ; preds = %511, %508
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %12, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %13, align 4
  br label %1470

612:                                              ; preds = %510
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %12, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %509, i64 noundef 104) #10
  br label %1470

616:                                              ; preds = %515, %512
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %12, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %13, align 4
  br label %1469

620:                                              ; preds = %514
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %12, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %513, i64 noundef 112) #10
  br label %1469

624:                                              ; preds = %521, %516
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %12, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %13, align 4
  br label %1468

628:                                              ; preds = %520, %518
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %12, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %517, i64 noundef 288) #10
  br label %1468

632:                                              ; preds = %525, %522
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %12, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %13, align 4
  br label %1467

636:                                              ; preds = %524
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %12, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %523, i64 noundef 216) #10
  br label %1467

640:                                              ; preds = %533, %526
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %12, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %13, align 4
  br label %1466

644:                                              ; preds = %532, %530, %528
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %12, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %527, i64 noundef 136) #10
  br label %1466

648:                                              ; preds = %537, %534
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %12, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %13, align 4
  br label %1465

652:                                              ; preds = %536
  %653 = landingpad { ptr, i32 }
          cleanup
  %654 = extractvalue { ptr, i32 } %653, 0
  store ptr %654, ptr %12, align 8
  %655 = extractvalue { ptr, i32 } %653, 1
  store i32 %655, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %535, i64 noundef 160) #10
  br label %1465

656:                                              ; preds = %541, %538
  %657 = landingpad { ptr, i32 }
          cleanup
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %12, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %13, align 4
  br label %1464

660:                                              ; preds = %540
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %12, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %539, i64 noundef 56) #10
  br label %1464

664:                                              ; preds = %542
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %12, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %13, align 4
  br label %1463

668:                                              ; preds = %546, %544
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %12, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %13, align 4
  br label %676

672:                                              ; preds = %548, %547
  %673 = landingpad { ptr, i32 }
          cleanup
  %674 = extractvalue { ptr, i32 } %673, 0
  store ptr %674, ptr %12, align 8
  %675 = extractvalue { ptr, i32 } %673, 1
  store i32 %675, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #7
  br label %676

676:                                              ; preds = %672, %668
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #7
  %677 = load i1, ptr %79, align 1
  br i1 %677, label %678, label %679

678:                                              ; preds = %676
  call void @_ZdlPvm(ptr noundef %543, i64 noundef 304) #10
  br label %679

679:                                              ; preds = %678, %676
  br label %1463

680:                                              ; preds = %549
  %681 = landingpad { ptr, i32 }
          cleanup
  %682 = extractvalue { ptr, i32 } %681, 0
  store ptr %682, ptr %12, align 8
  %683 = extractvalue { ptr, i32 } %681, 1
  store i32 %683, ptr %13, align 4
  br label %1462

684:                                              ; preds = %553, %551
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %12, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %13, align 4
  br label %702

688:                                              ; preds = %556, %554
  %689 = landingpad { ptr, i32 }
          cleanup
  %690 = extractvalue { ptr, i32 } %689, 0
  store ptr %690, ptr %12, align 8
  %691 = extractvalue { ptr, i32 } %689, 1
  store i32 %691, ptr %13, align 4
  br label %701

692:                                              ; preds = %559, %557
  %693 = landingpad { ptr, i32 }
          cleanup
  %694 = extractvalue { ptr, i32 } %693, 0
  store ptr %694, ptr %12, align 8
  %695 = extractvalue { ptr, i32 } %693, 1
  store i32 %695, ptr %13, align 4
  br label %700

696:                                              ; preds = %561, %560
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %12, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #7
  br label %700

700:                                              ; preds = %696, %692
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #7
  br label %701

701:                                              ; preds = %700, %688
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #7
  br label %702

702:                                              ; preds = %701, %684
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  %703 = load i1, ptr %84, align 1
  br i1 %703, label %704, label %705

704:                                              ; preds = %702
  call void @_ZdlPvm(ptr noundef %550, i64 noundef 224) #10
  br label %705

705:                                              ; preds = %704, %702
  br label %1462

706:                                              ; preds = %562
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %12, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %13, align 4
  br label %1461

710:                                              ; preds = %563
  %711 = landingpad { ptr, i32 }
          cleanup
  %712 = extractvalue { ptr, i32 } %711, 0
  store ptr %712, ptr %12, align 8
  %713 = extractvalue { ptr, i32 } %711, 1
  store i32 %713, ptr %13, align 4
  br label %723

714:                                              ; preds = %565
  %715 = landingpad { ptr, i32 }
          cleanup
  %716 = extractvalue { ptr, i32 } %715, 0
  store ptr %716, ptr %12, align 8
  %717 = extractvalue { ptr, i32 } %715, 1
  store i32 %717, ptr %13, align 4
  br label %722

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

722:                                              ; preds = %718, %714
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #7
  br label %723

723:                                              ; preds = %722, %710
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #7
  br label %1460

724:                                              ; preds = %571
  %725 = landingpad { ptr, i32 }
          cleanup
  %726 = extractvalue { ptr, i32 } %725, 0
  store ptr %726, ptr %12, align 8
  %727 = extractvalue { ptr, i32 } %725, 1
  store i32 %727, ptr %13, align 4
  br label %732

728:                                              ; preds = %573
  %729 = landingpad { ptr, i32 }
          cleanup
  %730 = extractvalue { ptr, i32 } %729, 0
  store ptr %730, ptr %12, align 8
  %731 = extractvalue { ptr, i32 } %729, 1
  store i32 %731, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %732

732:                                              ; preds = %728, %724
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  br label %739

733:                                              ; preds = %581
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %12, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #7
  br label %739

737:                                              ; preds = %583, %577
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #7
  br label %738

738:                                              ; preds = %737, %576
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #7
  br label %740

739:                                              ; preds = %733, %732
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #7
  br label %1460

740:                                              ; preds = %738, %569
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  %741 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.38)
          to label %742 unwind label %756

742:                                              ; preds = %740
  br i1 %741, label %743, label %788

743:                                              ; preds = %742
  %744 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %745 unwind label %760

745:                                              ; preds = %743
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #7
  %746 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef @.str.65, ptr noundef nonnull align 8 dereferenceable(32) %746)
          to label %747 unwind label %764

747:                                              ; preds = %745
  %748 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %744, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %749 unwind label %768

749:                                              ; preds = %747
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  %750 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %751 unwind label %774

751:                                              ; preds = %749
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #7
  %752 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef @.str.65, ptr noundef nonnull align 8 dereferenceable(32) %752)
          to label %753 unwind label %778

753:                                              ; preds = %751
  %754 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %750, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %755 unwind label %782

755:                                              ; preds = %753
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #7
  br label %788

756:                                              ; preds = %812, %791, %788, %740
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %12, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %13, align 4
  br label %1459

760:                                              ; preds = %743
  %761 = landingpad { ptr, i32 }
          cleanup
  %762 = extractvalue { ptr, i32 } %761, 0
  store ptr %762, ptr %12, align 8
  %763 = extractvalue { ptr, i32 } %761, 1
  store i32 %763, ptr %13, align 4
  br label %773

764:                                              ; preds = %745
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %12, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %13, align 4
  br label %772

768:                                              ; preds = %747
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %12, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  br label %772

772:                                              ; preds = %768, %764
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  br label %773

773:                                              ; preds = %772, %760
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  br label %1459

774:                                              ; preds = %749
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %12, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %13, align 4
  br label %787

778:                                              ; preds = %751
  %779 = landingpad { ptr, i32 }
          cleanup
  %780 = extractvalue { ptr, i32 } %779, 0
  store ptr %780, ptr %12, align 8
  %781 = extractvalue { ptr, i32 } %779, 1
  store i32 %781, ptr %13, align 4
  br label %786

782:                                              ; preds = %753
  %783 = landingpad { ptr, i32 }
          cleanup
  %784 = extractvalue { ptr, i32 } %783, 0
  store ptr %784, ptr %12, align 8
  %785 = extractvalue { ptr, i32 } %783, 1
  store i32 %785, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %786

786:                                              ; preds = %782, %778
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  br label %787

787:                                              ; preds = %786, %774
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #7
  br label %1459

788:                                              ; preds = %755, %742
  %789 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.36)
          to label %790 unwind label %756

790:                                              ; preds = %788
  br i1 %789, label %791, label %812

791:                                              ; preds = %790
  %792 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 128) #8
          to label %793 unwind label %756

793:                                              ; preds = %791
  store i1 true, ptr %103, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #7
  %794 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %795 unwind label %800

795:                                              ; preds = %793
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef %794)
          to label %796 unwind label %800

796:                                              ; preds = %795
  invoke void @_ZN10SimTKIpopt16MonotoneMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEE(ptr noundef nonnull align 8 dereferenceable(122) %792, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %797 unwind label %804

797:                                              ; preds = %796
  store i1 false, ptr %103, align 1
  %798 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef %792)
          to label %799 unwind label %804

799:                                              ; preds = %797
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #7
  br label %944

800:                                              ; preds = %795, %793
  %801 = landingpad { ptr, i32 }
          cleanup
  %802 = extractvalue { ptr, i32 } %801, 0
  store ptr %802, ptr %12, align 8
  %803 = extractvalue { ptr, i32 } %801, 1
  store i32 %803, ptr %13, align 4
  br label %808

804:                                              ; preds = %797, %796
  %805 = landingpad { ptr, i32 }
          cleanup
  %806 = extractvalue { ptr, i32 } %805, 0
  store ptr %806, ptr %12, align 8
  %807 = extractvalue { ptr, i32 } %805, 1
  store i32 %807, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #7
  br label %808

808:                                              ; preds = %804, %800
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #7
  %809 = load i1, ptr %103, align 1
  br i1 %809, label %810, label %811

810:                                              ; preds = %808
  call void @_ZdlPvm(ptr noundef %792, i64 noundef 128) #10
  br label %811

811:                                              ; preds = %810, %808
  br label %1459

812:                                              ; preds = %790
  %813 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.38)
          to label %814 unwind label %756

814:                                              ; preds = %812
  br i1 %813, label %815, label %943

815:                                              ; preds = %814
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104)
          to label %816 unwind label %825

816:                                              ; preds = %815
  %817 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.46)
          to label %818 unwind label %829

818:                                              ; preds = %816
  br i1 %817, label %819, label %837

819:                                              ; preds = %818
  %820 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #8
          to label %821 unwind label %829

821:                                              ; preds = %819
  invoke void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %820)
          to label %822 unwind label %833

822:                                              ; preds = %821
  %823 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef %820)
          to label %824 unwind label %829

824:                                              ; preds = %822
  br label %865

825:                                              ; preds = %815
  %826 = landingpad { ptr, i32 }
          cleanup
  %827 = extractvalue { ptr, i32 } %826, 0
  store ptr %827, ptr %12, align 8
  %828 = extractvalue { ptr, i32 } %826, 1
  store i32 %828, ptr %13, align 4
  br label %942

829:                                              ; preds = %856, %853, %850, %843, %840, %837, %822, %819, %816
  %830 = landingpad { ptr, i32 }
          cleanup
  %831 = extractvalue { ptr, i32 } %830, 0
  store ptr %831, ptr %12, align 8
  %832 = extractvalue { ptr, i32 } %830, 1
  store i32 %832, ptr %13, align 4
  br label %941

833:                                              ; preds = %821
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %12, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %820, i64 noundef 56) #10
  br label %941

837:                                              ; preds = %818
  %838 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.44)
          to label %839 unwind label %829

839:                                              ; preds = %837
  br i1 %838, label %840, label %850

840:                                              ; preds = %839
  %841 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #8
          to label %842 unwind label %829

842:                                              ; preds = %840
  invoke void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72) %841, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %843 unwind label %846

843:                                              ; preds = %842
  %844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef %841)
          to label %845 unwind label %829

845:                                              ; preds = %843
  br label %864

846:                                              ; preds = %842
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %12, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %841, i64 noundef 72) #10
  br label %941

850:                                              ; preds = %839
  %851 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.43)
          to label %852 unwind label %829

852:                                              ; preds = %850
  br i1 %851, label %853, label %863

853:                                              ; preds = %852
  %854 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 432) #8
          to label %855 unwind label %829

855:                                              ; preds = %853
  invoke void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432) %854, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %856 unwind label %859

856:                                              ; preds = %855
  %857 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef %854)
          to label %858 unwind label %829

858:                                              ; preds = %856
  br label %863

859:                                              ; preds = %855
  %860 = landingpad { ptr, i32 }
          cleanup
  %861 = extractvalue { ptr, i32 } %860, 0
  store ptr %861, ptr %12, align 8
  %862 = extractvalue { ptr, i32 } %860, 1
  store i32 %862, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %854, i64 noundef 432) #10
  br label %941

863:                                              ; preds = %858, %852
  br label %864

864:                                              ; preds = %863, %845
  br label %865

865:                                              ; preds = %864, %824
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105)
          to label %866 unwind label %875

866:                                              ; preds = %865
  %867 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @.str.46)
          to label %868 unwind label %879

868:                                              ; preds = %866
  br i1 %867, label %869, label %887

869:                                              ; preds = %868
  %870 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #8
          to label %871 unwind label %879

871:                                              ; preds = %869
  invoke void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %870)
          to label %872 unwind label %883

872:                                              ; preds = %871
  %873 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef %870)
          to label %874 unwind label %879

874:                                              ; preds = %872
  br label %918

875:                                              ; preds = %865
  %876 = landingpad { ptr, i32 }
          cleanup
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %12, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %13, align 4
  br label %940

879:                                              ; preds = %918, %913, %906, %903, %900, %893, %890, %887, %872, %869, %866
  %880 = landingpad { ptr, i32 }
          cleanup
  %881 = extractvalue { ptr, i32 } %880, 0
  store ptr %881, ptr %12, align 8
  %882 = extractvalue { ptr, i32 } %880, 1
  store i32 %882, ptr %13, align 4
  br label %939

883:                                              ; preds = %871
  %884 = landingpad { ptr, i32 }
          cleanup
  %885 = extractvalue { ptr, i32 } %884, 0
  store ptr %885, ptr %12, align 8
  %886 = extractvalue { ptr, i32 } %884, 1
  store i32 %886, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %870, i64 noundef 56) #10
  br label %939

887:                                              ; preds = %868
  %888 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @.str.44)
          to label %889 unwind label %879

889:                                              ; preds = %887
  br i1 %888, label %890, label %900

890:                                              ; preds = %889
  %891 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #8
          to label %892 unwind label %879

892:                                              ; preds = %890
  invoke void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72) %891, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %893 unwind label %896

893:                                              ; preds = %892
  %894 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef %891)
          to label %895 unwind label %879

895:                                              ; preds = %893
  br label %917

896:                                              ; preds = %892
  %897 = landingpad { ptr, i32 }
          cleanup
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %12, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %891, i64 noundef 72) #10
  br label %939

900:                                              ; preds = %889
  %901 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @.str.43)
          to label %902 unwind label %879

902:                                              ; preds = %900
  br i1 %901, label %903, label %913

903:                                              ; preds = %902
  %904 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 432) #8
          to label %905 unwind label %879

905:                                              ; preds = %903
  invoke void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432) %904, ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %906 unwind label %909

906:                                              ; preds = %905
  %907 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef %904)
          to label %908 unwind label %879

908:                                              ; preds = %906
  br label %916

909:                                              ; preds = %905
  %910 = landingpad { ptr, i32 }
          cleanup
  %911 = extractvalue { ptr, i32 } %910, 0
  store ptr %911, ptr %12, align 8
  %912 = extractvalue { ptr, i32 } %910, 1
  store i32 %912, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %904, i64 noundef 432) #10
  br label %939

913:                                              ; preds = %902
  %914 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef null)
          to label %915 unwind label %879

915:                                              ; preds = %913
  br label %916

916:                                              ; preds = %915, %908
  br label %917

917:                                              ; preds = %916, %895
  br label %918

918:                                              ; preds = %917, %874
  %919 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 304) #8
          to label %920 unwind label %879

920:                                              ; preds = %918
  store i1 true, ptr %107, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #7
  %921 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %922 unwind label %927

922:                                              ; preds = %920
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef %921)
          to label %923 unwind label %927

923:                                              ; preds = %922
  invoke void @_ZN10SimTKIpopt16AdaptiveMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEERKNS1_INS_8MuOracleEEES9_(ptr noundef nonnull align 8 dereferenceable(304) %919, ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(8) %105)
          to label %924 unwind label %931

924:                                              ; preds = %923
  store i1 false, ptr %107, align 1
  %925 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef %919)
          to label %926 unwind label %931

926:                                              ; preds = %924
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #7
  br label %943

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

931:                                              ; preds = %924, %923
  %932 = landingpad { ptr, i32 }
          cleanup
  %933 = extractvalue { ptr, i32 } %932, 0
  store ptr %933, ptr %12, align 8
  %934 = extractvalue { ptr, i32 } %932, 1
  store i32 %934, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #7
  br label %935

935:                                              ; preds = %931, %927
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #7
  %936 = load i1, ptr %107, align 1
  br i1 %936, label %937, label %938

937:                                              ; preds = %935
  call void @_ZdlPvm(ptr noundef %919, i64 noundef 304) #10
  br label %938

938:                                              ; preds = %937, %935
  br label %939

939:                                              ; preds = %938, %909, %896, %883, %879
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #7
  br label %940

940:                                              ; preds = %939, %875
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #7
  br label %941

941:                                              ; preds = %940, %859, %846, %833, %829
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #7
  br label %942

942:                                              ; preds = %941, %825
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #7
  br label %1459

943:                                              ; preds = %926, %814
  br label %944

944:                                              ; preds = %943, %799
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #7
  %945 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #8
          to label %946 unwind label %962

946:                                              ; preds = %944
  %947 = invoke noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %948 unwind label %966

948:                                              ; preds = %946
  invoke void @_ZN10SimTKIpopt22LeastSquareMultipliersC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(64) %945, ptr noundef nonnull align 8 dereferenceable(49) %947)
          to label %949 unwind label %966

949:                                              ; preds = %948
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef %945)
          to label %950 unwind label %962

950:                                              ; preds = %949
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #7
  %951 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #8
          to label %952 unwind label %970

952:                                              ; preds = %950
  invoke void @_ZN10SimTKIpopt23RestoIterateInitializerC1ERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(72) %951, ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %953 unwind label %974

953:                                              ; preds = %952
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef %951)
          to label %954 unwind label %970

954:                                              ; preds = %953
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19OrigIterationOutputEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef null)
          to label %955 unwind label %978

955:                                              ; preds = %954
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #7
  %956 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #8
          to label %957 unwind label %982

957:                                              ; preds = %955
  invoke void @_ZN10SimTKIpopt20RestoIterationOutputC1ERKNS_8SmartPtrINS_19OrigIterationOutputEEE(ptr noundef nonnull align 8 dereferenceable(65) %956, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %958 unwind label %986

958:                                              ; preds = %957
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef %956)
          to label %959 unwind label %982

959:                                              ; preds = %958
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %960 unwind label %990

960:                                              ; preds = %959
  %961 = load i32, ptr %65, align 4, !tbaa !11
  switch i32 %961, label %1018 [
    i32 0, label %994
    i32 1, label %1008
  ]

962:                                              ; preds = %949, %944
  %963 = landingpad { ptr, i32 }
          cleanup
  %964 = extractvalue { ptr, i32 } %963, 0
  store ptr %964, ptr %12, align 8
  %965 = extractvalue { ptr, i32 } %963, 1
  store i32 %965, ptr %13, align 4
  br label %1458

966:                                              ; preds = %948, %946
  %967 = landingpad { ptr, i32 }
          cleanup
  %968 = extractvalue { ptr, i32 } %967, 0
  store ptr %968, ptr %12, align 8
  %969 = extractvalue { ptr, i32 } %967, 1
  store i32 %969, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %945, i64 noundef 64) #10
  br label %1458

970:                                              ; preds = %953, %950
  %971 = landingpad { ptr, i32 }
          cleanup
  %972 = extractvalue { ptr, i32 } %971, 0
  store ptr %972, ptr %12, align 8
  %973 = extractvalue { ptr, i32 } %971, 1
  store i32 %973, ptr %13, align 4
  br label %1457

974:                                              ; preds = %952
  %975 = landingpad { ptr, i32 }
          cleanup
  %976 = extractvalue { ptr, i32 } %975, 0
  store ptr %976, ptr %12, align 8
  %977 = extractvalue { ptr, i32 } %975, 1
  store i32 %977, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %951, i64 noundef 72) #10
  br label %1457

978:                                              ; preds = %954
  %979 = landingpad { ptr, i32 }
          cleanup
  %980 = extractvalue { ptr, i32 } %979, 0
  store ptr %980, ptr %12, align 8
  %981 = extractvalue { ptr, i32 } %979, 1
  store i32 %981, ptr %13, align 4
  br label %1456

982:                                              ; preds = %958, %955
  %983 = landingpad { ptr, i32 }
          cleanup
  %984 = extractvalue { ptr, i32 } %983, 0
  store ptr %984, ptr %12, align 8
  %985 = extractvalue { ptr, i32 } %983, 1
  store i32 %985, ptr %13, align 4
  br label %1455

986:                                              ; preds = %957
  %987 = landingpad { ptr, i32 }
          cleanup
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %12, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %956, i64 noundef 72) #10
  br label %1455

990:                                              ; preds = %959
  %991 = landingpad { ptr, i32 }
          cleanup
  %992 = extractvalue { ptr, i32 } %991, 0
  store ptr %992, ptr %12, align 8
  %993 = extractvalue { ptr, i32 } %991, 1
  store i32 %993, ptr %13, align 4
  br label %1454

994:                                              ; preds = %960
  %995 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #8
          to label %996 unwind label %1000

996:                                              ; preds = %994
  invoke void @_ZN10SimTKIpopt19ExactHessianUpdaterC2Ev(ptr noundef nonnull align 8 dereferenceable(49) %995)
          to label %997 unwind label %1004

997:                                              ; preds = %996
  %998 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef %995)
          to label %999 unwind label %1000

999:                                              ; preds = %997
  br label %1018

1000:                                             ; preds = %1011, %1008, %997, %994
  %1001 = landingpad { ptr, i32 }
          cleanup
  %1002 = extractvalue { ptr, i32 } %1001, 0
  store ptr %1002, ptr %12, align 8
  %1003 = extractvalue { ptr, i32 } %1001, 1
  store i32 %1003, ptr %13, align 4
  br label %1453

1004:                                             ; preds = %996
  %1005 = landingpad { ptr, i32 }
          cleanup
  %1006 = extractvalue { ptr, i32 } %1005, 0
  store ptr %1006, ptr %12, align 8
  %1007 = extractvalue { ptr, i32 } %1005, 1
  store i32 %1007, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %995, i64 noundef 56) #10
  br label %1453

1008:                                             ; preds = %960
  %1009 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 424) #8
          to label %1010 unwind label %1000

1010:                                             ; preds = %1008
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdaterC1Eb(ptr noundef nonnull align 8 dereferenceable(424) %1009, i1 noundef zeroext true)
          to label %1011 unwind label %1014

1011:                                             ; preds = %1010
  %1012 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef %1009)
          to label %1013 unwind label %1000

1013:                                             ; preds = %1011
  br label %1018

1014:                                             ; preds = %1010
  %1015 = landingpad { ptr, i32 }
          cleanup
  %1016 = extractvalue { ptr, i32 } %1015, 0
  store ptr %1016, ptr %12, align 8
  %1017 = extractvalue { ptr, i32 } %1015, 1
  store i32 %1017, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1009, i64 noundef 424) #10
  br label %1453

1018:                                             ; preds = %1013, %999, %960
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #7
  %1019 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 152) #8
          to label %1020 unwind label %1080

1020:                                             ; preds = %1018
  store i1 true, ptr %117, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #7
  %1021 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %1022 unwind label %1084

1022:                                             ; preds = %1020
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef %1021)
          to label %1023 unwind label %1084

1023:                                             ; preds = %1022
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #7
  %1024 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_8MuUpdateEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %1025 unwind label %1088

1025:                                             ; preds = %1023
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef %1024)
          to label %1026 unwind label %1088

1026:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #7
  %1027 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_27RestoFilterConvergenceCheckEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %1028 unwind label %1092

1028:                                             ; preds = %1026
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %116, ptr noundef %1027)
          to label %1029 unwind label %1092

1029:                                             ; preds = %1028
  invoke void @_ZN10SimTKIpopt14IpoptAlgorithmC1ERKNS_8SmartPtrINS_14PDSystemSolverEEERKNS1_INS_10LineSearchEEERKNS1_INS_8MuUpdateEEERKNS1_INS_16ConvergenceCheckEEERKNS1_INS_18IterateInitializerEEERKNS1_INS_15IterationOutputEEERKNS1_INS_14HessianUpdaterEEERKNS1_INS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(152) %1019, ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %116, ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %1030 unwind label %1096

1030:                                             ; preds = %1029
  store i1 false, ptr %117, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef %1019)
          to label %1031 unwind label %1096

1031:                                             ; preds = %1030
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #7
  %1032 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #8
          to label %1033 unwind label %1106

1033:                                             ; preds = %1031
  %1034 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %113)
          to label %1035 unwind label %1110

1035:                                             ; preds = %1033
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhaseC1ERNS_14IpoptAlgorithmERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(104) %1032, ptr noundef nonnull align 8 dereferenceable(152) %1034, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %1036 unwind label %1110

1036:                                             ; preds = %1035
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef %1032)
          to label %1037 unwind label %1106

1037:                                             ; preds = %1036
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #7
  %1038 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 304) #8
          to label %1039 unwind label %1114

1039:                                             ; preds = %1037
  store i1 true, ptr %121, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #7
  %1040 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_14PDSystemSolverEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %1041 unwind label %1118

1041:                                             ; preds = %1039
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %120, ptr noundef %1040)
          to label %1042 unwind label %1118

1042:                                             ; preds = %1041
  invoke void @_ZN10SimTKIpopt16FilterLSAcceptorC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(304) %1038, ptr noundef nonnull align 8 dereferenceable(8) %120)
          to label %1043 unwind label %1122

1043:                                             ; preds = %1042
  store i1 false, ptr %121, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef %1038)
          to label %1044 unwind label %1122

1044:                                             ; preds = %1043
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #7
  %1045 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 224) #8
          to label %1046 unwind label %1130

1046:                                             ; preds = %1044
  store i1 true, ptr %125, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #7
  %1047 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_16FilterLSAcceptorEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %119)
          to label %1048 unwind label %1134

1048:                                             ; preds = %1046
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef %1047)
          to label %1049 unwind label %1134

1049:                                             ; preds = %1048
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #7
  %1050 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_16RestorationPhaseEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %118)
          to label %1051 unwind label %1138

1051:                                             ; preds = %1049
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef %1050)
          to label %1052 unwind label %1138

1052:                                             ; preds = %1051
  invoke void @_ZN10SimTKIpopt22BacktrackingLineSearchC1ERKNS_8SmartPtrINS_22BacktrackingLSAcceptorEEERKNS1_INS_16RestorationPhaseEEERKNS1_INS_16ConvergenceCheckEEE(ptr noundef nonnull align 8 dereferenceable(224) %1045, ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %1053 unwind label %1142

1053:                                             ; preds = %1052
  store i1 false, ptr %125, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef %1045)
          to label %1054 unwind label %1142

1054:                                             ; preds = %1053
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #7
  %1055 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_27RestoFilterConvergenceCheckEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %1056 unwind label %1151

1056:                                             ; preds = %1054
  %1057 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNK10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %119)
          to label %1058 unwind label %1151

1058:                                             ; preds = %1056
  invoke void @_ZN10SimTKIpopt27RestoFilterConvergenceCheck23SetOrigFilterLSAcceptorERKNS_16FilterLSAcceptorE(ptr noundef nonnull align 8 dereferenceable(160) %1055, ptr noundef nonnull align 8 dereferenceable(304) %1057)
          to label %1059 unwind label %1151

1059:                                             ; preds = %1058
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %1060 unwind label %1155

1060:                                             ; preds = %1059
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  %1061 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %129) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %1062 unwind label %1159

1062:                                             ; preds = %1060
  %1063 = load ptr, ptr %10, align 8, !tbaa !5
  %1064 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %1061, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(32) %1063)
          to label %1065 unwind label %1163

1065:                                             ; preds = %1062
  %1066 = xor i1 %1064, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #7
  br i1 %1066, label %1067, label %1184

1067:                                             ; preds = %1065
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #7
  %1068 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %132) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %132)
          to label %1069 unwind label %1168

1069:                                             ; preds = %1067
  %1070 = load ptr, ptr %10, align 8, !tbaa !5
  %1071 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %1068, ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull align 4 dereferenceable(4) %130, ptr noundef nonnull align 8 dereferenceable(32) %1070)
          to label %1072 unwind label %1172

1072:                                             ; preds = %1069
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %132) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #7
  br i1 %1071, label %1073, label %1182

1073:                                             ; preds = %1072
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #7
  %1074 = load i32, ptr %130, align 4, !tbaa !9
  store i32 %1074, ptr %133, align 4, !tbaa !11
  %1075 = load i32, ptr %133, align 4, !tbaa !11
  %1076 = icmp eq i32 %1075, 1
  br i1 %1076, label %1077, label %1181

1077:                                             ; preds = %1073
  %1078 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.38)
          to label %1079 unwind label %1177

1079:                                             ; preds = %1077
  br label %1181

1080:                                             ; preds = %1018
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %12, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %13, align 4
  br label %1452

1084:                                             ; preds = %1022, %1020
  %1085 = landingpad { ptr, i32 }
          cleanup
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %12, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %13, align 4
  br label %1102

1088:                                             ; preds = %1025, %1023
  %1089 = landingpad { ptr, i32 }
          cleanup
  %1090 = extractvalue { ptr, i32 } %1089, 0
  store ptr %1090, ptr %12, align 8
  %1091 = extractvalue { ptr, i32 } %1089, 1
  store i32 %1091, ptr %13, align 4
  br label %1101

1092:                                             ; preds = %1028, %1026
  %1093 = landingpad { ptr, i32 }
          cleanup
  %1094 = extractvalue { ptr, i32 } %1093, 0
  store ptr %1094, ptr %12, align 8
  %1095 = extractvalue { ptr, i32 } %1093, 1
  store i32 %1095, ptr %13, align 4
  br label %1100

1096:                                             ; preds = %1030, %1029
  %1097 = landingpad { ptr, i32 }
          cleanup
  %1098 = extractvalue { ptr, i32 } %1097, 0
  store ptr %1098, ptr %12, align 8
  %1099 = extractvalue { ptr, i32 } %1097, 1
  store i32 %1099, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #7
  br label %1100

1100:                                             ; preds = %1096, %1092
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #7
  br label %1101

1101:                                             ; preds = %1100, %1088
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #7
  br label %1102

1102:                                             ; preds = %1101, %1084
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #7
  %1103 = load i1, ptr %117, align 1
  br i1 %1103, label %1104, label %1105

1104:                                             ; preds = %1102
  call void @_ZdlPvm(ptr noundef %1019, i64 noundef 152) #10
  br label %1105

1105:                                             ; preds = %1104, %1102
  br label %1452

1106:                                             ; preds = %1036, %1031
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %12, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %13, align 4
  br label %1451

1110:                                             ; preds = %1035, %1033
  %1111 = landingpad { ptr, i32 }
          cleanup
  %1112 = extractvalue { ptr, i32 } %1111, 0
  store ptr %1112, ptr %12, align 8
  %1113 = extractvalue { ptr, i32 } %1111, 1
  store i32 %1113, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1032, i64 noundef 104) #10
  br label %1451

1114:                                             ; preds = %1037
  %1115 = landingpad { ptr, i32 }
          cleanup
  %1116 = extractvalue { ptr, i32 } %1115, 0
  store ptr %1116, ptr %12, align 8
  %1117 = extractvalue { ptr, i32 } %1115, 1
  store i32 %1117, ptr %13, align 4
  br label %1450

1118:                                             ; preds = %1041, %1039
  %1119 = landingpad { ptr, i32 }
          cleanup
  %1120 = extractvalue { ptr, i32 } %1119, 0
  store ptr %1120, ptr %12, align 8
  %1121 = extractvalue { ptr, i32 } %1119, 1
  store i32 %1121, ptr %13, align 4
  br label %1126

1122:                                             ; preds = %1043, %1042
  %1123 = landingpad { ptr, i32 }
          cleanup
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %12, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #7
  br label %1126

1126:                                             ; preds = %1122, %1118
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #7
  %1127 = load i1, ptr %121, align 1
  br i1 %1127, label %1128, label %1129

1128:                                             ; preds = %1126
  call void @_ZdlPvm(ptr noundef %1038, i64 noundef 304) #10
  br label %1129

1129:                                             ; preds = %1128, %1126
  br label %1450

1130:                                             ; preds = %1044
  %1131 = landingpad { ptr, i32 }
          cleanup
  %1132 = extractvalue { ptr, i32 } %1131, 0
  store ptr %1132, ptr %12, align 8
  %1133 = extractvalue { ptr, i32 } %1131, 1
  store i32 %1133, ptr %13, align 4
  br label %1449

1134:                                             ; preds = %1048, %1046
  %1135 = landingpad { ptr, i32 }
          cleanup
  %1136 = extractvalue { ptr, i32 } %1135, 0
  store ptr %1136, ptr %12, align 8
  %1137 = extractvalue { ptr, i32 } %1135, 1
  store i32 %1137, ptr %13, align 4
  br label %1147

1138:                                             ; preds = %1051, %1049
  %1139 = landingpad { ptr, i32 }
          cleanup
  %1140 = extractvalue { ptr, i32 } %1139, 0
  store ptr %1140, ptr %12, align 8
  %1141 = extractvalue { ptr, i32 } %1139, 1
  store i32 %1141, ptr %13, align 4
  br label %1146

1142:                                             ; preds = %1053, %1052
  %1143 = landingpad { ptr, i32 }
          cleanup
  %1144 = extractvalue { ptr, i32 } %1143, 0
  store ptr %1144, ptr %12, align 8
  %1145 = extractvalue { ptr, i32 } %1143, 1
  store i32 %1145, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #7
  br label %1146

1146:                                             ; preds = %1142, %1138
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #7
  br label %1147

1147:                                             ; preds = %1146, %1134
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #7
  %1148 = load i1, ptr %125, align 1
  br i1 %1148, label %1149, label %1150

1149:                                             ; preds = %1147
  call void @_ZdlPvm(ptr noundef %1045, i64 noundef 224) #10
  br label %1150

1150:                                             ; preds = %1149, %1147
  br label %1449

1151:                                             ; preds = %1058, %1056, %1054
  %1152 = landingpad { ptr, i32 }
          cleanup
  %1153 = extractvalue { ptr, i32 } %1152, 0
  store ptr %1153, ptr %12, align 8
  %1154 = extractvalue { ptr, i32 } %1152, 1
  store i32 %1154, ptr %13, align 4
  br label %1448

1155:                                             ; preds = %1059
  %1156 = landingpad { ptr, i32 }
          cleanup
  %1157 = extractvalue { ptr, i32 } %1156, 0
  store ptr %1157, ptr %12, align 8
  %1158 = extractvalue { ptr, i32 } %1156, 1
  store i32 %1158, ptr %13, align 4
  br label %1447

1159:                                             ; preds = %1060
  %1160 = landingpad { ptr, i32 }
          cleanup
  %1161 = extractvalue { ptr, i32 } %1160, 0
  store ptr %1161, ptr %12, align 8
  %1162 = extractvalue { ptr, i32 } %1160, 1
  store i32 %1162, ptr %13, align 4
  br label %1167

1163:                                             ; preds = %1062
  %1164 = landingpad { ptr, i32 }
          cleanup
  %1165 = extractvalue { ptr, i32 } %1164, 0
  store ptr %1165, ptr %12, align 8
  %1166 = extractvalue { ptr, i32 } %1164, 1
  store i32 %1166, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  br label %1167

1167:                                             ; preds = %1163, %1159
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #7
  br label %1446

1168:                                             ; preds = %1067
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %12, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %13, align 4
  br label %1176

1172:                                             ; preds = %1069
  %1173 = landingpad { ptr, i32 }
          cleanup
  %1174 = extractvalue { ptr, i32 } %1173, 0
  store ptr %1174, ptr %12, align 8
  %1175 = extractvalue { ptr, i32 } %1173, 1
  store i32 %1175, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #7
  br label %1176

1176:                                             ; preds = %1172, %1168
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %132) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #7
  br label %1183

1177:                                             ; preds = %1077
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %12, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #7
  br label %1183

1181:                                             ; preds = %1079, %1073
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #7
  br label %1182

1182:                                             ; preds = %1181, %1072
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #7
  br label %1184

1183:                                             ; preds = %1177, %1176
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #7
  br label %1446

1184:                                             ; preds = %1182, %1065
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  %1185 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.38)
          to label %1186 unwind label %1198

1186:                                             ; preds = %1184
  br i1 %1185, label %1187, label %1220

1187:                                             ; preds = %1186
  %1188 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %137) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %1189 unwind label %1202

1189:                                             ; preds = %1187
  %1190 = load ptr, ptr %10, align 8, !tbaa !5
  %1191 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %1188, ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull align 8 dereferenceable(32) %1190)
          to label %1192 unwind label %1206

1192:                                             ; preds = %1189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #7
  %1193 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %138) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %1194 unwind label %1211

1194:                                             ; preds = %1192
  %1195 = load ptr, ptr %10, align 8, !tbaa !5
  %1196 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %1193, ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull align 8 dereferenceable(32) %1195)
          to label %1197 unwind label %1215

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

1198:                                             ; preds = %1244, %1223, %1220, %1184
  %1199 = landingpad { ptr, i32 }
          cleanup
  %1200 = extractvalue { ptr, i32 } %1199, 0
  store ptr %1200, ptr %12, align 8
  %1201 = extractvalue { ptr, i32 } %1199, 1
  store i32 %1201, ptr %13, align 4
  br label %1445

1202:                                             ; preds = %1187
  %1203 = landingpad { ptr, i32 }
          cleanup
  %1204 = extractvalue { ptr, i32 } %1203, 0
  store ptr %1204, ptr %12, align 8
  %1205 = extractvalue { ptr, i32 } %1203, 1
  store i32 %1205, ptr %13, align 4
  br label %1210

1206:                                             ; preds = %1189
  %1207 = landingpad { ptr, i32 }
          cleanup
  %1208 = extractvalue { ptr, i32 } %1207, 0
  store ptr %1208, ptr %12, align 8
  %1209 = extractvalue { ptr, i32 } %1207, 1
  store i32 %1209, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #7
  br label %1210

1210:                                             ; preds = %1206, %1202
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #7
  br label %1445

1211:                                             ; preds = %1192
  %1212 = landingpad { ptr, i32 }
          cleanup
  %1213 = extractvalue { ptr, i32 } %1212, 0
  store ptr %1213, ptr %12, align 8
  %1214 = extractvalue { ptr, i32 } %1212, 1
  store i32 %1214, ptr %13, align 4
  br label %1219

1215:                                             ; preds = %1194
  %1216 = landingpad { ptr, i32 }
          cleanup
  %1217 = extractvalue { ptr, i32 } %1216, 0
  store ptr %1217, ptr %12, align 8
  %1218 = extractvalue { ptr, i32 } %1216, 1
  store i32 %1218, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #7
  br label %1219

1219:                                             ; preds = %1215, %1211
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #7
  br label %1445

1220:                                             ; preds = %1197, %1186
  %1221 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.36)
          to label %1222 unwind label %1198

1222:                                             ; preds = %1220
  br i1 %1221, label %1223, label %1244

1223:                                             ; preds = %1222
  %1224 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 128) #8
          to label %1225 unwind label %1198

1225:                                             ; preds = %1223
  store i1 true, ptr %141, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #7
  %1226 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %1227 unwind label %1232

1227:                                             ; preds = %1225
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef %1226)
          to label %1228 unwind label %1232

1228:                                             ; preds = %1227
  invoke void @_ZN10SimTKIpopt16MonotoneMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEE(ptr noundef nonnull align 8 dereferenceable(122) %1224, ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %1229 unwind label %1236

1229:                                             ; preds = %1228
  store i1 false, ptr %141, align 1
  %1230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef %1224)
          to label %1231 unwind label %1236

1231:                                             ; preds = %1229
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #7
  br label %1376

1232:                                             ; preds = %1227, %1225
  %1233 = landingpad { ptr, i32 }
          cleanup
  %1234 = extractvalue { ptr, i32 } %1233, 0
  store ptr %1234, ptr %12, align 8
  %1235 = extractvalue { ptr, i32 } %1233, 1
  store i32 %1235, ptr %13, align 4
  br label %1240

1236:                                             ; preds = %1229, %1228
  %1237 = landingpad { ptr, i32 }
          cleanup
  %1238 = extractvalue { ptr, i32 } %1237, 0
  store ptr %1238, ptr %12, align 8
  %1239 = extractvalue { ptr, i32 } %1237, 1
  store i32 %1239, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #7
  br label %1240

1240:                                             ; preds = %1236, %1232
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #7
  %1241 = load i1, ptr %141, align 1
  br i1 %1241, label %1242, label %1243

1242:                                             ; preds = %1240
  call void @_ZdlPvm(ptr noundef %1224, i64 noundef 128) #10
  br label %1243

1243:                                             ; preds = %1242, %1240
  br label %1445

1244:                                             ; preds = %1222
  %1245 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.38)
          to label %1246 unwind label %1198

1246:                                             ; preds = %1244
  br i1 %1245, label %1247, label %1375

1247:                                             ; preds = %1246
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %142)
          to label %1248 unwind label %1257

1248:                                             ; preds = %1247
  %1249 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.46)
          to label %1250 unwind label %1261

1250:                                             ; preds = %1248
  br i1 %1249, label %1251, label %1269

1251:                                             ; preds = %1250
  %1252 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #8
          to label %1253 unwind label %1261

1253:                                             ; preds = %1251
  invoke void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %1252)
          to label %1254 unwind label %1265

1254:                                             ; preds = %1253
  %1255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef %1252)
          to label %1256 unwind label %1261

1256:                                             ; preds = %1254
  br label %1297

1257:                                             ; preds = %1247
  %1258 = landingpad { ptr, i32 }
          cleanup
  %1259 = extractvalue { ptr, i32 } %1258, 0
  store ptr %1259, ptr %12, align 8
  %1260 = extractvalue { ptr, i32 } %1258, 1
  store i32 %1260, ptr %13, align 4
  br label %1374

1261:                                             ; preds = %1288, %1285, %1282, %1275, %1272, %1269, %1254, %1251, %1248
  %1262 = landingpad { ptr, i32 }
          cleanup
  %1263 = extractvalue { ptr, i32 } %1262, 0
  store ptr %1263, ptr %12, align 8
  %1264 = extractvalue { ptr, i32 } %1262, 1
  store i32 %1264, ptr %13, align 4
  br label %1373

1265:                                             ; preds = %1253
  %1266 = landingpad { ptr, i32 }
          cleanup
  %1267 = extractvalue { ptr, i32 } %1266, 0
  store ptr %1267, ptr %12, align 8
  %1268 = extractvalue { ptr, i32 } %1266, 1
  store i32 %1268, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1252, i64 noundef 56) #10
  br label %1373

1269:                                             ; preds = %1250
  %1270 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.44)
          to label %1271 unwind label %1261

1271:                                             ; preds = %1269
  br i1 %1270, label %1272, label %1282

1272:                                             ; preds = %1271
  %1273 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #8
          to label %1274 unwind label %1261

1274:                                             ; preds = %1272
  invoke void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72) %1273, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %1275 unwind label %1278

1275:                                             ; preds = %1274
  %1276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef %1273)
          to label %1277 unwind label %1261

1277:                                             ; preds = %1275
  br label %1296

1278:                                             ; preds = %1274
  %1279 = landingpad { ptr, i32 }
          cleanup
  %1280 = extractvalue { ptr, i32 } %1279, 0
  store ptr %1280, ptr %12, align 8
  %1281 = extractvalue { ptr, i32 } %1279, 1
  store i32 %1281, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1273, i64 noundef 72) #10
  br label %1373

1282:                                             ; preds = %1271
  %1283 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.43)
          to label %1284 unwind label %1261

1284:                                             ; preds = %1282
  br i1 %1283, label %1285, label %1295

1285:                                             ; preds = %1284
  %1286 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 432) #8
          to label %1287 unwind label %1261

1287:                                             ; preds = %1285
  invoke void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432) %1286, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %1288 unwind label %1291

1288:                                             ; preds = %1287
  %1289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef %1286)
          to label %1290 unwind label %1261

1290:                                             ; preds = %1288
  br label %1295

1291:                                             ; preds = %1287
  %1292 = landingpad { ptr, i32 }
          cleanup
  %1293 = extractvalue { ptr, i32 } %1292, 0
  store ptr %1293, ptr %12, align 8
  %1294 = extractvalue { ptr, i32 } %1292, 1
  store i32 %1294, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1286, i64 noundef 432) #10
  br label %1373

1295:                                             ; preds = %1290, %1284
  br label %1296

1296:                                             ; preds = %1295, %1277
  br label %1297

1297:                                             ; preds = %1296, %1256
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %143)
          to label %1298 unwind label %1307

1298:                                             ; preds = %1297
  %1299 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.46)
          to label %1300 unwind label %1311

1300:                                             ; preds = %1298
  br i1 %1299, label %1301, label %1319

1301:                                             ; preds = %1300
  %1302 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #8
          to label %1303 unwind label %1311

1303:                                             ; preds = %1301
  invoke void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %1302)
          to label %1304 unwind label %1315

1304:                                             ; preds = %1303
  %1305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef %1302)
          to label %1306 unwind label %1311

1306:                                             ; preds = %1304
  br label %1350

1307:                                             ; preds = %1297
  %1308 = landingpad { ptr, i32 }
          cleanup
  %1309 = extractvalue { ptr, i32 } %1308, 0
  store ptr %1309, ptr %12, align 8
  %1310 = extractvalue { ptr, i32 } %1308, 1
  store i32 %1310, ptr %13, align 4
  br label %1372

1311:                                             ; preds = %1350, %1345, %1338, %1335, %1332, %1325, %1322, %1319, %1304, %1301, %1298
  %1312 = landingpad { ptr, i32 }
          cleanup
  %1313 = extractvalue { ptr, i32 } %1312, 0
  store ptr %1313, ptr %12, align 8
  %1314 = extractvalue { ptr, i32 } %1312, 1
  store i32 %1314, ptr %13, align 4
  br label %1371

1315:                                             ; preds = %1303
  %1316 = landingpad { ptr, i32 }
          cleanup
  %1317 = extractvalue { ptr, i32 } %1316, 0
  store ptr %1317, ptr %12, align 8
  %1318 = extractvalue { ptr, i32 } %1316, 1
  store i32 %1318, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1302, i64 noundef 56) #10
  br label %1371

1319:                                             ; preds = %1300
  %1320 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.44)
          to label %1321 unwind label %1311

1321:                                             ; preds = %1319
  br i1 %1320, label %1322, label %1332

1322:                                             ; preds = %1321
  %1323 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #8
          to label %1324 unwind label %1311

1324:                                             ; preds = %1322
  invoke void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72) %1323, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %1325 unwind label %1328

1325:                                             ; preds = %1324
  %1326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef %1323)
          to label %1327 unwind label %1311

1327:                                             ; preds = %1325
  br label %1349

1328:                                             ; preds = %1324
  %1329 = landingpad { ptr, i32 }
          cleanup
  %1330 = extractvalue { ptr, i32 } %1329, 0
  store ptr %1330, ptr %12, align 8
  %1331 = extractvalue { ptr, i32 } %1329, 1
  store i32 %1331, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1323, i64 noundef 72) #10
  br label %1371

1332:                                             ; preds = %1321
  %1333 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.43)
          to label %1334 unwind label %1311

1334:                                             ; preds = %1332
  br i1 %1333, label %1335, label %1345

1335:                                             ; preds = %1334
  %1336 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 432) #8
          to label %1337 unwind label %1311

1337:                                             ; preds = %1335
  invoke void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432) %1336, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %1338 unwind label %1341

1338:                                             ; preds = %1337
  %1339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef %1336)
          to label %1340 unwind label %1311

1340:                                             ; preds = %1338
  br label %1348

1341:                                             ; preds = %1337
  %1342 = landingpad { ptr, i32 }
          cleanup
  %1343 = extractvalue { ptr, i32 } %1342, 0
  store ptr %1343, ptr %12, align 8
  %1344 = extractvalue { ptr, i32 } %1342, 1
  store i32 %1344, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1336, i64 noundef 432) #10
  br label %1371

1345:                                             ; preds = %1334
  %1346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef null)
          to label %1347 unwind label %1311

1347:                                             ; preds = %1345
  br label %1348

1348:                                             ; preds = %1347, %1340
  br label %1349

1349:                                             ; preds = %1348, %1327
  br label %1350

1350:                                             ; preds = %1349, %1306
  %1351 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 304) #8
          to label %1352 unwind label %1311

1352:                                             ; preds = %1350
  store i1 true, ptr %145, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #7
  %1353 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %1354 unwind label %1359

1354:                                             ; preds = %1352
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef %1353)
          to label %1355 unwind label %1359

1355:                                             ; preds = %1354
  invoke void @_ZN10SimTKIpopt16AdaptiveMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEERKNS1_INS_8MuOracleEEES9_(ptr noundef nonnull align 8 dereferenceable(304) %1351, ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef nonnull align 8 dereferenceable(8) %143)
          to label %1356 unwind label %1363

1356:                                             ; preds = %1355
  store i1 false, ptr %145, align 1
  %1357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef %1351)
          to label %1358 unwind label %1363

1358:                                             ; preds = %1356
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %144) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %143) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %142) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #7
  br label %1375

1359:                                             ; preds = %1354, %1352
  %1360 = landingpad { ptr, i32 }
          cleanup
  %1361 = extractvalue { ptr, i32 } %1360, 0
  store ptr %1361, ptr %12, align 8
  %1362 = extractvalue { ptr, i32 } %1360, 1
  store i32 %1362, ptr %13, align 4
  br label %1367

1363:                                             ; preds = %1356, %1355
  %1364 = landingpad { ptr, i32 }
          cleanup
  %1365 = extractvalue { ptr, i32 } %1364, 0
  store ptr %1365, ptr %12, align 8
  %1366 = extractvalue { ptr, i32 } %1364, 1
  store i32 %1366, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %144) #7
  br label %1367

1367:                                             ; preds = %1363, %1359
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #7
  %1368 = load i1, ptr %145, align 1
  br i1 %1368, label %1369, label %1370

1369:                                             ; preds = %1367
  call void @_ZdlPvm(ptr noundef %1351, i64 noundef 304) #10
  br label %1370

1370:                                             ; preds = %1369, %1367
  br label %1371

1371:                                             ; preds = %1370, %1341, %1328, %1315, %1311
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %143) #7
  br label %1372

1372:                                             ; preds = %1371, %1307
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #7
  br label %1373

1373:                                             ; preds = %1372, %1291, %1278, %1265, %1261
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %142) #7
  br label %1374

1374:                                             ; preds = %1373, %1257
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #7
  br label %1445

1375:                                             ; preds = %1358, %1246
  br label %1376

1376:                                             ; preds = %1375, %1231
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #7
  %1377 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #8
          to label %1378 unwind label %1383

1378:                                             ; preds = %1376
  invoke void @_ZN10SimTKIpopt19OrigIterationOutputC1Ev(ptr noundef nonnull align 8 dereferenceable(50) %1377)
          to label %1379 unwind label %1387

1379:                                             ; preds = %1378
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef %1377)
          to label %1380 unwind label %1383

1380:                                             ; preds = %1379
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147)
          to label %1381 unwind label %1391

1381:                                             ; preds = %1380
  %1382 = load i32, ptr %65, align 4, !tbaa !11
  switch i32 %1382, label %1419 [
    i32 0, label %1395
    i32 1, label %1409
  ]

1383:                                             ; preds = %1379, %1376
  %1384 = landingpad { ptr, i32 }
          cleanup
  %1385 = extractvalue { ptr, i32 } %1384, 0
  store ptr %1385, ptr %12, align 8
  %1386 = extractvalue { ptr, i32 } %1384, 1
  store i32 %1386, ptr %13, align 4
  br label %1444

1387:                                             ; preds = %1378
  %1388 = landingpad { ptr, i32 }
          cleanup
  %1389 = extractvalue { ptr, i32 } %1388, 0
  store ptr %1389, ptr %12, align 8
  %1390 = extractvalue { ptr, i32 } %1388, 1
  store i32 %1390, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1377, i64 noundef 56) #10
  br label %1444

1391:                                             ; preds = %1380
  %1392 = landingpad { ptr, i32 }
          cleanup
  %1393 = extractvalue { ptr, i32 } %1392, 0
  store ptr %1393, ptr %12, align 8
  %1394 = extractvalue { ptr, i32 } %1392, 1
  store i32 %1394, ptr %13, align 4
  br label %1443

1395:                                             ; preds = %1381
  %1396 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #8
          to label %1397 unwind label %1401

1397:                                             ; preds = %1395
  invoke void @_ZN10SimTKIpopt19ExactHessianUpdaterC2Ev(ptr noundef nonnull align 8 dereferenceable(49) %1396)
          to label %1398 unwind label %1405

1398:                                             ; preds = %1397
  %1399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef %1396)
          to label %1400 unwind label %1401

1400:                                             ; preds = %1398
  br label %1419

1401:                                             ; preds = %1419, %1412, %1409, %1398, %1395
  %1402 = landingpad { ptr, i32 }
          cleanup
  %1403 = extractvalue { ptr, i32 } %1402, 0
  store ptr %1403, ptr %12, align 8
  %1404 = extractvalue { ptr, i32 } %1402, 1
  store i32 %1404, ptr %13, align 4
  br label %1442

1405:                                             ; preds = %1397
  %1406 = landingpad { ptr, i32 }
          cleanup
  %1407 = extractvalue { ptr, i32 } %1406, 0
  store ptr %1407, ptr %12, align 8
  %1408 = extractvalue { ptr, i32 } %1406, 1
  store i32 %1408, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1396, i64 noundef 56) #10
  br label %1442

1409:                                             ; preds = %1381
  %1410 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 424) #8
          to label %1411 unwind label %1401

1411:                                             ; preds = %1409
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdaterC1Eb(ptr noundef nonnull align 8 dereferenceable(424) %1410, i1 noundef zeroext false)
          to label %1412 unwind label %1415

1412:                                             ; preds = %1411
  %1413 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef %1410)
          to label %1414 unwind label %1401

1414:                                             ; preds = %1412
  br label %1419

1415:                                             ; preds = %1411
  %1416 = landingpad { ptr, i32 }
          cleanup
  %1417 = extractvalue { ptr, i32 } %1416, 0
  store ptr %1417, ptr %12, align 8
  %1418 = extractvalue { ptr, i32 } %1416, 1
  store i32 %1418, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %1410, i64 noundef 424) #10
  br label %1442

1419:                                             ; preds = %1414, %1400, %1381
  store i1 false, ptr %148, align 1
  %1420 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 152) #8
          to label %1421 unwind label %1401

1421:                                             ; preds = %1419
  store i1 true, ptr %150, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #7
  %1422 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %1423 unwind label %1428

1423:                                             ; preds = %1421
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef %1422)
          to label %1424 unwind label %1428

1424:                                             ; preds = %1423
  invoke void @_ZN10SimTKIpopt14IpoptAlgorithmC1ERKNS_8SmartPtrINS_14PDSystemSolverEEERKNS1_INS_10LineSearchEEERKNS1_INS_8MuUpdateEEERKNS1_INS_16ConvergenceCheckEEERKNS1_INS_18IterateInitializerEEERKNS1_INS_15IterationOutputEEERKNS1_INS_14HessianUpdaterEEERKNS1_INS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(152) %1420, ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %1425 unwind label %1432

1425:                                             ; preds = %1424
  store i1 false, ptr %150, align 1
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %1420)
          to label %1426 unwind label %1432

1426:                                             ; preds = %1425
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #7
  store i1 true, ptr %148, align 1
  %1427 = load i1, ptr %148, align 1
  br i1 %1427, label %1441, label %1440

1428:                                             ; preds = %1423, %1421
  %1429 = landingpad { ptr, i32 }
          cleanup
  %1430 = extractvalue { ptr, i32 } %1429, 0
  store ptr %1430, ptr %12, align 8
  %1431 = extractvalue { ptr, i32 } %1429, 1
  store i32 %1431, ptr %13, align 4
  br label %1436

1432:                                             ; preds = %1425, %1424
  %1433 = landingpad { ptr, i32 }
          cleanup
  %1434 = extractvalue { ptr, i32 } %1433, 0
  store ptr %1434, ptr %12, align 8
  %1435 = extractvalue { ptr, i32 } %1433, 1
  store i32 %1435, ptr %13, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #7
  br label %1436

1436:                                             ; preds = %1432, %1428
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #7
  %1437 = load i1, ptr %150, align 1
  br i1 %1437, label %1438, label %1439

1438:                                             ; preds = %1436
  call void @_ZdlPvm(ptr noundef %1420, i64 noundef 152) #10
  br label %1439

1439:                                             ; preds = %1438, %1436
  br label %1442

1440:                                             ; preds = %1426
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #7
  br label %1441

1441:                                             ; preds = %1440, %1426
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_19OrigIterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21RestoRestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_27RestoFilterConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15SymLinearSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  ret void

1442:                                             ; preds = %1439, %1415, %1405, %1401
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #7
  br label %1443

1443:                                             ; preds = %1442, %1391
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #7
  br label %1444

1444:                                             ; preds = %1443, %1387, %1383
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #7
  br label %1445

1445:                                             ; preds = %1444, %1374, %1243, %1219, %1210, %1198
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  br label %1446

1446:                                             ; preds = %1445, %1183, %1167
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #7
  br label %1447

1447:                                             ; preds = %1446, %1155
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #7
  br label %1448

1448:                                             ; preds = %1447, %1151
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #7
  br label %1449

1449:                                             ; preds = %1448, %1150, %1130
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #7
  br label %1450

1450:                                             ; preds = %1449, %1129, %1114
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #7
  br label %1451

1451:                                             ; preds = %1450, %1110, %1106
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #7
  br label %1452

1452:                                             ; preds = %1451, %1105, %1080
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #7
  br label %1453

1453:                                             ; preds = %1452, %1014, %1004, %1000
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #7
  br label %1454

1454:                                             ; preds = %1453, %990
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #7
  br label %1455

1455:                                             ; preds = %1454, %986, %982
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_19OrigIterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #7
  br label %1456

1456:                                             ; preds = %1455, %978
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #7
  br label %1457

1457:                                             ; preds = %1456, %974, %970
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #7
  br label %1458

1458:                                             ; preds = %1457, %966, %962
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #7
  br label %1459

1459:                                             ; preds = %1458, %942, %811, %787, %773, %756
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  br label %1460

1460:                                             ; preds = %1459, %739, %723
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #7
  br label %1461

1461:                                             ; preds = %1460, %706
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #7
  br label %1462

1462:                                             ; preds = %1461, %705, %680
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #7
  br label %1463

1463:                                             ; preds = %1462, %679, %664
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21RestoRestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #7
  br label %1464

1464:                                             ; preds = %1463, %660, %656
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_27RestoFilterConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #7
  br label %1465

1465:                                             ; preds = %1464, %652, %648
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #7
  br label %1466

1466:                                             ; preds = %1465, %644, %640
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #7
  br label %1467

1467:                                             ; preds = %1466, %636, %632
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #7
  br label %1468

1468:                                             ; preds = %1467, %628, %624
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #7
  br label %1469

1469:                                             ; preds = %1468, %620, %616
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #7
  br label %1470

1470:                                             ; preds = %1469, %612, %608
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #7
  br label %1471

1471:                                             ; preds = %1470, %604, %600
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #7
  br label %1472

1472:                                             ; preds = %1471, %596, %592
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #7
  br label %1473

1473:                                             ; preds = %1472, %588, %584
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  br label %1474

1474:                                             ; preds = %1473, %489
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  br label %1475

1475:                                             ; preds = %1474, %476
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  br label %1476

1476:                                             ; preds = %1475, %464, %460
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15SymLinearSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #7
  br label %1477

1477:                                             ; preds = %1476, %459, %439
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  br label %1478

1478:                                             ; preds = %1477, %408, %379, %378
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #7
  br label %1479

1479:                                             ; preds = %1478, %366
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %1480

1480:                                             ; preds = %1479, %339, %329, %304, %279, %254, %229, %204, %184, %183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br label %1481

1481:                                             ; preds = %1480, %171
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  br label %1482

1482:                                             ; preds = %1481, %167
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  br label %1483

1483:                                             ; preds = %1482
  %1484 = load ptr, ptr %12, align 8
  %1485 = load i32, ptr %13, align 4
  %1486 = insertvalue { ptr, i32 } poison, ptr %1484, 0
  %1487 = insertvalue { ptr, i32 } %1486, i32 %1485, 1
  resume { ptr, i32 } %1487

1488:                                             ; preds = %391, %312, %287, %262, %237, %212, %166
  unreachable
}

declare void @_ZN10SimTKIpopt31OptimalityErrorConvergenceCheckC1Ev(ptr noundef nonnull align 8 dereferenceable(132)) unnamed_addr #3

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

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

declare ptr @__cxa_allocate_exception(i64)

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

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

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

declare void @_ZN10SimTKIpopt21LapackSolverInterfaceC1Ev(ptr noundef nonnull align 8 dereferenceable(113)) unnamed_addr #3

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt16TSymLinearSolverC1ENS_8SmartPtrINS_30SparseSymLinearSolverInterfaceEEENS1_INS_17TSymScalingMethodEEE(ptr noundef nonnull align 8 dereferenceable(141), ptr noundef, ptr noundef) unnamed_addr #3

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

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

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

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

declare void @_ZN10SimTKIpopt18StdAugSystemSolverC1ERNS_15SymLinearSolverE(ptr noundef nonnull align 8 dereferenceable(233), ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

declare noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) #3

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

declare void @_ZN10SimTKIpopt22LowRankAugSystemSolverC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt21PDPerturbationHandlerC1Ev(ptr noundef nonnull align 8 dereferenceable(216)) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt17PDFullSpaceSolverC1ERNS_15AugSystemSolverERNS_21PDPerturbationHandlerE(ptr noundef nonnull align 8 dereferenceable(136), ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(216)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt22LeastSquareMultipliersC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt27WarmStartIterateInitializerC1Ev(ptr noundef nonnull align 8 dereferenceable(97)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt25DefaultIterateInitializerC1ERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEERKNS1_INS_18IterateInitializerEEE(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN10SimTKIpopt20AugRestoSystemSolverC1ERNS_15AugSystemSolverEb(ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(49), i1 noundef zeroext) unnamed_addr #3

declare void @_ZN10SimTKIpopt27RestoFilterConvergenceCheckC1Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt21RestoRestorationPhaseC1Ev(ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt16FilterLSAcceptorC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(304), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt22BacktrackingLineSearchC1ERKNS_8SmartPtrINS_22BacktrackingLSAcceptorEEERKNS1_INS_16RestorationPhaseEEERKNS1_INS_16ConvergenceCheckEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4

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

declare void @_ZN10SimTKIpopt16MonotoneMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEE(ptr noundef nonnull align 8 dereferenceable(122), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

declare void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN10SimTKIpopt16AdaptiveMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEERKNS1_INS_8MuOracleEEES9_(ptr noundef nonnull align 8 dereferenceable(304), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt23RestoIterateInitializerC1ERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt20RestoIterationOutputC1ERKNS_8SmartPtrINS_19OrigIterationOutputEEE(ptr noundef nonnull align 8 dereferenceable(65), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

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

declare void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdaterC1Eb(ptr noundef nonnull align 8 dereferenceable(424), i1 noundef zeroext) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt14IpoptAlgorithmC1ERKNS_8SmartPtrINS_14PDSystemSolverEEERKNS1_INS_10LineSearchEEERKNS1_INS_8MuUpdateEEERKNS1_INS_16ConvergenceCheckEEERKNS1_INS_18IterateInitializerEEERKNS1_INS_15IterationOutputEEERKNS1_INS_14HessianUpdaterEEERKNS1_INS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

declare void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhaseC1ERNS_14IpoptAlgorithmERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt27RestoFilterConvergenceCheck23SetOrigFilterLSAcceptorERKNS_16FilterLSAcceptorE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(304)) #3

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

declare void @_ZN10SimTKIpopt19OrigIterationOutputC1Ev(ptr noundef nonnull align 8 dereferenceable(50)) unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN10SimTKIpopt24HessianApproximationTypeE", !7, i64 0}


; 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.54" = type { ptr }
%"class.SimTKIpopt::SmartPtr.55" = type { ptr }
%"class.SimTKIpopt::SmartPtr.56" = 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.17" = type { i8 }
%"class.SimTKIpopt::SmartPtr.57" = type { ptr }
%"class.SimTKIpopt::SmartPtr.58" = type { ptr }
%"class.SimTKIpopt::SmartPtr.61" = type { ptr }
%"class.SimTKIpopt::SmartPtr.72" = type { ptr }
%"class.SimTKIpopt::SmartPtr.73" = type { ptr }
%"class.SimTKIpopt::SmartPtr.75" = type { ptr }
%"class.SimTKIpopt::SmartPtr.76" = type { ptr }
%"class.SimTKIpopt::SmartPtr.77" = type { ptr }
%"class.SimTKIpopt::SmartPtr.78" = type { ptr }
%"class.SimTKIpopt::SmartPtr.79" = type { ptr }
%"class.SimTKIpopt::SmartPtr.83" = type { ptr }
%"class.SimTKIpopt::SmartPtr.84" = type { ptr }
%"class.SimTKIpopt::SmartPtr.85" = type { ptr }
%"class.SimTKIpopt::SmartPtr.86" = type { ptr }
%"class.SimTKIpopt::SmartPtr.87" = type { ptr }
%"class.SimTKIpopt::SmartPtr.93" = type { ptr }
%"class.SimTKIpopt::SmartPtr.94" = type { ptr }
%"class.SimTKIpopt::SmartPtr.95" = type { ptr }

@.str.5 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [97 x i8], align 1
@_ZTIN10SimTKIpopt14OPTION_INVALIDE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.57 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [7 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

declare noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

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

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

123:                                              ; preds = %5
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull %122)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %124 unwind label %135

124:                                              ; preds = %123
  %125 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %126 unwind label %137

126:                                              ; preds = %124
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  %127 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.8)
  br i1 %127, label %128, label %149

128:                                              ; preds = %126
  %129 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %130 unwind label %.thread

130:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %131 unwind label %143

131:                                              ; preds = %130
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %129, ptr noundef nonnull %11, ptr noundef nonnull %13, i32 noundef 186)
          to label %132 unwind label %145

132:                                              ; preds = %131
  invoke void @__cxa_throw(ptr nonnull %129, ptr nonnull @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %872 unwind label %145

133:                                              ; preds = %5
  %134 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %122, i64 noundef 136) #10
  br label %871

135:                                              ; preds = %123
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %139

137:                                              ; preds = %124
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %139

139:                                              ; preds = %137, %135
  %.pn = phi { ptr, i32 } [ %138, %137 ], [ %136, %135 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  br label %870

140:                                              ; preds = %224, %221
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %870

.thread:                                          ; preds = %128
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  br label %148

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

145:                                              ; preds = %132, %131
  %.0158 = phi i1 [ false, %132 ], [ true, %131 ]
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %147

147:                                              ; preds = %143, %145
  %.1159 = phi i1 [ %.0158, %145 ], [ true, %143 ]
  %.pn295 = phi { ptr, i32 } [ %146, %145 ], [ %144, %143 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  br i1 %.1159, label %148, label %870

148:                                              ; preds = %.thread, %147
  %.pn295.pn305 = phi { ptr, i32 } [ %142, %.thread ], [ %.pn295, %147 ]
  call void @__cxa_free_exception(ptr %129) #7
  br label %870

149:                                              ; preds = %126
  %150 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.10)
  br i1 %150, label %151, label %163

151:                                              ; preds = %149
  %152 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.57, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %153 unwind label %.thread306

153:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %154 unwind label %157

154:                                              ; preds = %153
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %152, ptr noundef nonnull %15, ptr noundef nonnull %17, i32 noundef 192)
          to label %155 unwind label %159

155:                                              ; preds = %154
  invoke void @__cxa_throw(ptr nonnull %152, ptr nonnull @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %872 unwind label %159

.thread306:                                       ; preds = %151
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  br label %162

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

159:                                              ; preds = %155, %154
  %.0180 = phi i1 [ false, %155 ], [ true, %154 ]
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %161

161:                                              ; preds = %157, %159
  %.1181 = phi i1 [ %.0180, %159 ], [ true, %157 ]
  %.pn292 = phi { ptr, i32 } [ %160, %159 ], [ %158, %157 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  br i1 %.1181, label %162, label %870

162:                                              ; preds = %.thread306, %161
  %.pn292.pn309 = phi { ptr, i32 } [ %156, %.thread306 ], [ %.pn292, %161 ]
  call void @__cxa_free_exception(ptr %152) #7
  br label %870

163:                                              ; preds = %149
  %164 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.12)
  br i1 %164, label %165, label %177

165:                                              ; preds = %163
  %166 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %167 unwind label %.thread310

167:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %168 unwind label %171

168:                                              ; preds = %167
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %166, ptr noundef nonnull %19, ptr noundef nonnull %21, i32 noundef 197)
          to label %169 unwind label %173

169:                                              ; preds = %168
  invoke void @__cxa_throw(ptr nonnull %166, ptr nonnull @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %872 unwind label %173

.thread310:                                       ; preds = %165
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  br label %176

171:                                              ; preds = %167
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %175

173:                                              ; preds = %169, %168
  %.0176 = phi i1 [ false, %169 ], [ true, %168 ]
  %174 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %175

175:                                              ; preds = %171, %173
  %.1178 = phi i1 [ %.0176, %173 ], [ true, %171 ]
  %.pn289 = phi { ptr, i32 } [ %174, %173 ], [ %172, %171 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  br i1 %.1178, label %176, label %870

176:                                              ; preds = %.thread310, %175
  %.pn289.pn313 = phi { ptr, i32 } [ %170, %.thread310 ], [ %.pn289, %175 ]
  call void @__cxa_free_exception(ptr %166) #7
  br label %870

177:                                              ; preds = %163
  %178 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.14)
  br i1 %178, label %179, label %191

179:                                              ; preds = %177
  %180 = call ptr @__cxa_allocate_exception(i64 112) #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.59, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %181 unwind label %.thread314

181:                                              ; preds = %179
  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.56, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %182 unwind label %185

182:                                              ; preds = %181
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %180, ptr noundef nonnull %23, ptr noundef nonnull %25, i32 noundef 202)
          to label %183 unwind label %187

183:                                              ; preds = %182
  invoke void @__cxa_throw(ptr nonnull %180, ptr nonnull @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %872 unwind label %187

.thread314:                                       ; preds = %179
  %184 = landingpad { ptr, i32 }
          cleanup
  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
  br label %190

185:                                              ; preds = %181
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %189

187:                                              ; preds = %183, %182
  %.0173 = phi i1 [ false, %183 ], [ true, %182 ]
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %189

189:                                              ; preds = %185, %187
  %.1174 = phi i1 [ %.0173, %187 ], [ true, %185 ]
  %.pn286 = phi { ptr, i32 } [ %188, %187 ], [ %186, %185 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  call void @_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
  br i1 %.1174, label %190, label %870

190:                                              ; preds = %.thread314, %189
  %.pn286.pn317 = phi { ptr, i32 } [ %184, %.thread314 ], [ %.pn286, %189 ]
  call void @__cxa_free_exception(ptr %180) #7
  br label %870

191:                                              ; preds = %177
  %192 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.60)
  br i1 %192, label %193, label %205

193:                                              ; preds = %191
  %194 = call ptr @__cxa_allocate_exception(i64 112) #7
  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.61, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %195 unwind label %.thread318

195:                                              ; preds = %193
  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.56, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %196 unwind label %199

196:                                              ; preds = %195
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %194, ptr noundef nonnull %27, ptr noundef nonnull %29, i32 noundef 208)
          to label %197 unwind label %201

197:                                              ; preds = %196
  invoke void @__cxa_throw(ptr nonnull %194, ptr nonnull @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %872 unwind label %201

.thread318:                                       ; preds = %193
  %198 = landingpad { ptr, i32 }
          cleanup
  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
  br label %204

199:                                              ; preds = %195
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %203

201:                                              ; preds = %197, %196
  %.0170 = phi i1 [ false, %197 ], [ true, %196 ]
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %203

203:                                              ; preds = %199, %201
  %.1171 = phi i1 [ %.0170, %201 ], [ true, %199 ]
  %.pn283 = phi { ptr, i32 } [ %202, %201 ], [ %200, %199 ]
  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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  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
  br i1 %.1171, label %204, label %870

204:                                              ; preds = %.thread318, %203
  %.pn283.pn321 = phi { ptr, i32 } [ %198, %.thread318 ], [ %.pn283, %203 ]
  call void @__cxa_free_exception(ptr %194) #7
  br label %870

205:                                              ; preds = %191
  %206 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.16)
  br i1 %206, label %207, label %219

207:                                              ; preds = %205
  %208 = call ptr @__cxa_allocate_exception(i64 112) #7
  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.62, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %209 unwind label %.thread322

209:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %210 unwind label %213

210:                                              ; preds = %209
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %208, ptr noundef nonnull %31, ptr noundef nonnull %33, i32 noundef 214)
          to label %211 unwind label %215

211:                                              ; preds = %210
  invoke void @__cxa_throw(ptr nonnull %208, ptr nonnull @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %872 unwind label %215

.thread322:                                       ; preds = %207
  %212 = landingpad { ptr, i32 }
          cleanup
  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
  br label %218

213:                                              ; preds = %209
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %217

215:                                              ; preds = %211, %210
  %.0167 = phi i1 [ false, %211 ], [ true, %210 ]
  %216 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %217

217:                                              ; preds = %213, %215
  %.1168 = phi i1 [ %.0167, %215 ], [ true, %213 ]
  %.pn280 = phi { ptr, i32 } [ %216, %215 ], [ %214, %213 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  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
  br i1 %.1168, label %218, label %870

218:                                              ; preds = %.thread322, %217
  %.pn280.pn325 = phi { ptr, i32 } [ %212, %.thread322 ], [ %.pn280, %217 ]
  call void @__cxa_free_exception(ptr %208) #7
  br label %870

219:                                              ; preds = %205
  %220 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.7)
  br i1 %220, label %221, label %228

221:                                              ; preds = %219
  %222 = invoke noalias noundef nonnull dereferenceable(120) ptr @_Znwm(i64 noundef 120) #8
          to label %223 unwind label %140

223:                                              ; preds = %221
  invoke void @_ZN10SimTKIpopt21LapackSolverInterfaceC1Ev(ptr noundef nonnull align 8 dereferenceable(113) %222)
          to label %224 unwind label %226

224:                                              ; preds = %223
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull %222)
          to label %228 unwind label %140

226:                                              ; preds = %223
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %222, i64 noundef 120) #10
  br label %870

228:                                              ; preds = %224, %219
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %229 unwind label %238

229:                                              ; preds = %228
  %230 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %231 unwind label %240

231:                                              ; preds = %229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  br i1 %230, label %245, label %232

232:                                              ; preds = %231
  %233 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.8)
  br i1 %233, label %234, label %245

234:                                              ; preds = %232
  %235 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.10)
  br i1 %235, label %236, label %245

236:                                              ; preds = %234
  %237 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.23)
          to label %245 unwind label %243

238:                                              ; preds = %228
  %239 = landingpad { ptr, i32 }
          cleanup
  br label %242

240:                                              ; preds = %229
  %241 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %242

242:                                              ; preds = %240, %238
  %.pn184 = phi { ptr, i32 } [ %241, %240 ], [ %239, %238 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  br label %869

243:                                              ; preds = %236
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %869

245:                                              ; preds = %232, %234, %236, %231
  %246 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.22)
  br i1 %246, label %247, label %259

247:                                              ; preds = %245
  %248 = call ptr @__cxa_allocate_exception(i64 112) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.63, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %249 unwind label %.thread326

249:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %250 unwind label %253

250:                                              ; preds = %249
  invoke void @_ZN10SimTKIpopt14OPTION_INVALIDC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %248, ptr noundef nonnull %39, ptr noundef nonnull %41, i32 noundef 234)
          to label %251 unwind label %255

251:                                              ; preds = %250
  invoke void @__cxa_throw(ptr nonnull %248, ptr nonnull @_ZTIN10SimTKIpopt14OPTION_INVALIDE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #9
          to label %872 unwind label %255

.thread326:                                       ; preds = %247
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  br label %258

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

255:                                              ; preds = %251, %250
  %.0164 = phi i1 [ false, %251 ], [ true, %250 ]
  %256 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %257

257:                                              ; preds = %253, %255
  %.1165 = phi i1 [ %.0164, %255 ], [ true, %253 ]
  %.pn276 = phi { ptr, i32 } [ %256, %255 ], [ %254, %253 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  br i1 %.1165, label %258, label %869

258:                                              ; preds = %.thread326, %257
  %.pn276.pn329 = phi { ptr, i32 } [ %252, %.thread326 ], [ %.pn276, %257 ]
  call void @__cxa_free_exception(ptr %248) #7
  br label %869

259:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #7
  %260 = invoke noalias noundef nonnull dereferenceable(144) ptr @_Znwm(i64 noundef 144) #8
          to label %261 unwind label %284

261:                                              ; preds = %259
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %262 unwind label %.thread330

262:                                              ; preds = %261
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %263 unwind label %.thread334

263:                                              ; preds = %262
  invoke void @_ZN10SimTKIpopt16TSymLinearSolverC1ENS_8SmartPtrINS_30SparseSymLinearSolverInterfaceEEENS1_INS_17TSymScalingMethodEEE(ptr noundef nonnull align 8 dereferenceable(141) %260, ptr noundef nonnull %44, ptr noundef nonnull %45)
          to label %264 unwind label %288

264:                                              ; preds = %263
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15SymLinearSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull %260)
          to label %265 unwind label %288

265:                                              ; preds = %264
  call void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #7
  %266 = invoke noalias noundef nonnull dereferenceable(240) ptr @_Znwm(i64 noundef 240) #8
          to label %267 unwind label %291

267:                                              ; preds = %265
  %268 = call noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15SymLinearSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
  invoke void @_ZN10SimTKIpopt18StdAugSystemSolverC1ERNS_15SymLinearSolverE(ptr noundef nonnull align 8 dereferenceable(233) %266, ptr noundef nonnull align 8 dereferenceable(49) %268)
          to label %269 unwind label %293

269:                                              ; preds = %267
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull %266)
          to label %270 unwind label %291

270:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %271 unwind label %295

271:                                              ; preds = %270
  %272 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %273 unwind label %297

273:                                              ; preds = %271
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  %274 = load i32, ptr %47, align 4, !tbaa !5
  %275 = icmp eq i32 %274, 1
  br i1 %275, label %276, label %307

276:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #7
  %277 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #8
          to label %278 unwind label %300

278:                                              ; preds = %276
  %279 = call noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  invoke void @_ZN10SimTKIpopt22LowRankAugSystemSolverC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(204) %277, ptr noundef nonnull align 8 dereferenceable(49) %279)
          to label %280 unwind label %302

280:                                              ; preds = %278
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull %277)
          to label %281 unwind label %300

281:                                              ; preds = %280
  %282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %283 unwind label %304

283:                                              ; preds = %281
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #7
  br label %307

284:                                              ; preds = %259
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %868

.thread330:                                       ; preds = %261
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %290

.thread334:                                       ; preds = %262
  %287 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #7
  br label %290

288:                                              ; preds = %263, %264
  %.0161 = phi i1 [ false, %264 ], [ true, %263 ]
  %289 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #7
  br i1 %.0161, label %290, label %868

290:                                              ; preds = %.thread334, %.thread330, %288
  %.pn186.pn333 = phi { ptr, i32 } [ %286, %.thread330 ], [ %289, %288 ], [ %287, %.thread334 ]
  call void @_ZdlPvm(ptr noundef nonnull %260, i64 noundef 144) #10
  br label %868

291:                                              ; preds = %269, %265
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %867

293:                                              ; preds = %267
  %294 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %266, i64 noundef 240) #10
  br label %867

295:                                              ; preds = %270
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %299

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

299:                                              ; preds = %297, %295
  %.pn189 = phi { ptr, i32 } [ %298, %297 ], [ %296, %295 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  br label %866

300:                                              ; preds = %280, %276
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %306

302:                                              ; preds = %278
  %303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %277, i64 noundef 208) #10
  br label %306

304:                                              ; preds = %281
  %305 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #7
  br label %306

306:                                              ; preds = %304, %302, %300
  %.pn191 = phi { ptr, i32 } [ %305, %304 ], [ %301, %300 ], [ %303, %302 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #7
  br label %866

307:                                              ; preds = %283, %273
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #7
  %308 = invoke noalias noundef nonnull dereferenceable(216) ptr @_Znwm(i64 noundef 216) #8
          to label %309 unwind label %383

309:                                              ; preds = %307
  invoke void @_ZN10SimTKIpopt21PDPerturbationHandlerC1Ev(ptr noundef nonnull align 8 dereferenceable(216) %308)
          to label %310 unwind label %385

310:                                              ; preds = %309
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull %308)
          to label %311 unwind label %383

311:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #7
  %312 = invoke noalias noundef nonnull dereferenceable(136) ptr @_Znwm(i64 noundef 136) #8
          to label %313 unwind label %387

313:                                              ; preds = %311
  %314 = call noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %315 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNK10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %51)
  invoke void @_ZN10SimTKIpopt17PDFullSpaceSolverC1ERNS_15AugSystemSolverERNS_21PDPerturbationHandlerE(ptr noundef nonnull align 8 dereferenceable(136) %312, ptr noundef nonnull align 8 dereferenceable(49) %314, ptr noundef nonnull align 8 dereferenceable(216) %315)
          to label %316 unwind label %389

316:                                              ; preds = %313
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull %312)
          to label %317 unwind label %387

317:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #7
  %318 = invoke noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #8
          to label %319 unwind label %391

319:                                              ; preds = %317
  %320 = call noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  invoke void @_ZN10SimTKIpopt22LeastSquareMultipliersC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(64) %318, ptr noundef nonnull align 8 dereferenceable(49) %320)
          to label %321 unwind label %393

321:                                              ; preds = %319
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull %318)
          to label %322 unwind label %391

322:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #7
  %323 = invoke noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #8
          to label %324 unwind label %395

324:                                              ; preds = %322
  invoke void @_ZN10SimTKIpopt27WarmStartIterateInitializerC1Ev(ptr noundef nonnull align 8 dereferenceable(97) %323)
          to label %325 unwind label %397

325:                                              ; preds = %324
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull %323)
          to label %326 unwind label %395

326:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #7
  %327 = invoke noalias noundef nonnull dereferenceable(112) ptr @_Znwm(i64 noundef 112) #8
          to label %328 unwind label %399

328:                                              ; preds = %326
  invoke void @_ZN10SimTKIpopt25DefaultIterateInitializerC1ERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEERKNS1_INS_18IterateInitializerEEE(ptr noundef nonnull align 8 dereferenceable(112) %327, ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %329 unwind label %401

329:                                              ; preds = %328
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull %327)
          to label %330 unwind label %399

330:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #7
  %331 = invoke noalias noundef nonnull dereferenceable(288) ptr @_Znwm(i64 noundef 288) #8
          to label %332 unwind label %403

332:                                              ; preds = %330
  %333 = call noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  invoke void @_ZN10SimTKIpopt20AugRestoSystemSolverC1ERNS_15AugSystemSolverEb(ptr noundef nonnull align 8 dereferenceable(281) %331, ptr noundef nonnull align 8 dereferenceable(49) %333, i1 noundef zeroext true)
          to label %334 unwind label %405

334:                                              ; preds = %332
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull %331)
          to label %335 unwind label %403

335:                                              ; preds = %334
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #7
  %336 = invoke noalias noundef nonnull dereferenceable(216) ptr @_Znwm(i64 noundef 216) #8
          to label %337 unwind label %407

337:                                              ; preds = %335
  invoke void @_ZN10SimTKIpopt21PDPerturbationHandlerC1Ev(ptr noundef nonnull align 8 dereferenceable(216) %336)
          to label %338 unwind label %409

338:                                              ; preds = %337
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull %336)
          to label %339 unwind label %407

339:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #7
  %340 = invoke noalias noundef nonnull dereferenceable(136) ptr @_Znwm(i64 noundef 136) #8
          to label %341 unwind label %411

341:                                              ; preds = %339
  %342 = call noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
  %343 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNK10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
  invoke void @_ZN10SimTKIpopt17PDFullSpaceSolverC1ERNS_15AugSystemSolverERNS_21PDPerturbationHandlerE(ptr noundef nonnull align 8 dereferenceable(136) %340, ptr noundef nonnull align 8 dereferenceable(49) %342, ptr noundef nonnull align 8 dereferenceable(216) %343)
          to label %344 unwind label %413

344:                                              ; preds = %341
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull %340)
          to label %345 unwind label %411

345:                                              ; preds = %344
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #7
  %346 = invoke noalias noundef nonnull dereferenceable(160) ptr @_Znwm(i64 noundef 160) #8
          to label %347 unwind label %415

347:                                              ; preds = %345
  invoke void @_ZN10SimTKIpopt27RestoFilterConvergenceCheckC1Ev(ptr noundef nonnull align 8 dereferenceable(160) %346)
          to label %348 unwind label %417

348:                                              ; preds = %347
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_27RestoFilterConvergenceCheckEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull %346)
          to label %349 unwind label %415

349:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #7
  %350 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #8
          to label %351 unwind label %419

351:                                              ; preds = %349
  invoke void @_ZN10SimTKIpopt21RestoRestorationPhaseC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %350)
          to label %352 unwind label %421

352:                                              ; preds = %351
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_21RestoRestorationPhaseEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull %350)
          to label %353 unwind label %419

353:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #7
  %354 = invoke noalias noundef nonnull dereferenceable(304) ptr @_Znwm(i64 noundef 304) #8
          to label %355 unwind label %423

355:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #7
  %356 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_14PDSystemSolverEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %58)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef %356)
          to label %357 unwind label %.thread337

357:                                              ; preds = %355
  invoke void @_ZN10SimTKIpopt16FilterLSAcceptorC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(304) %354, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %359 unwind label %.thread341

.thread341:                                       ; preds = %357
  %358 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  br label %428

359:                                              ; preds = %357
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull %354)
          to label %360 unwind label %426

360:                                              ; preds = %359
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #7
  %361 = invoke noalias noundef nonnull dereferenceable(224) ptr @_Znwm(i64 noundef 224) #8
          to label %362 unwind label %429

362:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #7
  %363 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_16FilterLSAcceptorEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %61)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef %363)
          to label %364 unwind label %.thread343

364:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #7
  %365 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_21RestoRestorationPhaseEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %60)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef %365)
          to label %366 unwind label %.thread347

366:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #7
  %367 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_27RestoFilterConvergenceCheckEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %59)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef %367)
          to label %368 unwind label %433

368:                                              ; preds = %366
  invoke void @_ZN10SimTKIpopt22BacktrackingLineSearchC1ERKNS_8SmartPtrINS_22BacktrackingLSAcceptorEEERKNS1_INS_16RestorationPhaseEEERKNS1_INS_16ConvergenceCheckEEE(ptr noundef nonnull align 8 dereferenceable(224) %361, ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %369 unwind label %435

369:                                              ; preds = %368
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull %361)
          to label %370 unwind label %435

370:                                              ; preds = %369
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %70) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %371 unwind label %439

371:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull @.str.65, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %372 unwind label %441

372:                                              ; preds = %371
  %373 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %374 unwind label %443

374:                                              ; preds = %372
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #7
  br i1 %373, label %456, label %375

375:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %72) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %74) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %376 unwind label %447

376:                                              ; preds = %375
  %377 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 4 dereferenceable(4) %72, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %378 unwind label %449

378:                                              ; preds = %376
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #7
  %379 = load i32, ptr %72, align 4
  %380 = icmp eq i32 %379, 1
  %or.cond = select i1 %377, i1 %380, i1 false
  br i1 %or.cond, label %381, label %454

381:                                              ; preds = %378
  %382 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.38)
          to label %454 unwind label %452

383:                                              ; preds = %310, %307
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %865

385:                                              ; preds = %309
  %386 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %308, i64 noundef 216) #10
  br label %865

387:                                              ; preds = %316, %311
  %388 = landingpad { ptr, i32 }
          cleanup
  br label %864

389:                                              ; preds = %313
  %390 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %312, i64 noundef 136) #10
  br label %864

391:                                              ; preds = %321, %317
  %392 = landingpad { ptr, i32 }
          cleanup
  br label %863

393:                                              ; preds = %319
  %394 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %318, i64 noundef 64) #10
  br label %863

395:                                              ; preds = %325, %322
  %396 = landingpad { ptr, i32 }
          cleanup
  br label %862

397:                                              ; preds = %324
  %398 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %323, i64 noundef 104) #10
  br label %862

399:                                              ; preds = %329, %326
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %861

401:                                              ; preds = %328
  %402 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %327, i64 noundef 112) #10
  br label %861

403:                                              ; preds = %334, %330
  %404 = landingpad { ptr, i32 }
          cleanup
  br label %860

405:                                              ; preds = %332
  %406 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %331, i64 noundef 288) #10
  br label %860

407:                                              ; preds = %338, %335
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %859

409:                                              ; preds = %337
  %410 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %336, i64 noundef 216) #10
  br label %859

411:                                              ; preds = %344, %339
  %412 = landingpad { ptr, i32 }
          cleanup
  br label %858

413:                                              ; preds = %341
  %414 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %340, i64 noundef 136) #10
  br label %858

415:                                              ; preds = %348, %345
  %416 = landingpad { ptr, i32 }
          cleanup
  br label %857

417:                                              ; preds = %347
  %418 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %346, i64 noundef 160) #10
  br label %857

419:                                              ; preds = %352, %349
  %420 = landingpad { ptr, i32 }
          cleanup
  br label %856

421:                                              ; preds = %351
  %422 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %350, i64 noundef 56) #10
  br label %856

423:                                              ; preds = %353
  %424 = landingpad { ptr, i32 }
          cleanup
  br label %855

.thread337:                                       ; preds = %355
  %425 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  br label %428

426:                                              ; preds = %359
  %427 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  br label %855

428:                                              ; preds = %.thread341, %.thread337
  %.pn193340 = phi { ptr, i32 } [ %425, %.thread337 ], [ %358, %.thread341 ]
  call void @_ZdlPvm(ptr noundef nonnull %354, i64 noundef 304) #10
  br label %855

429:                                              ; preds = %360
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %854

.thread343:                                       ; preds = %362
  %431 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #7
  br label %438

.thread347:                                       ; preds = %364
  %432 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #7
  br label %438

433:                                              ; preds = %366
  %434 = landingpad { ptr, i32 }
          cleanup
  br label %437

435:                                              ; preds = %369, %368
  %.0152 = phi i1 [ false, %369 ], [ true, %368 ]
  %436 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #7
  br label %437

437:                                              ; preds = %433, %435
  %.1153 = phi i1 [ %.0152, %435 ], [ true, %433 ]
  %.pn195 = phi { ptr, i32 } [ %436, %435 ], [ %434, %433 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #7
  br i1 %.1153, label %438, label %854

438:                                              ; preds = %.thread347, %.thread343, %437
  %.pn195.pn.pn346 = phi { ptr, i32 } [ %431, %.thread343 ], [ %.pn195, %437 ], [ %432, %.thread347 ]
  call void @_ZdlPvm(ptr noundef nonnull %361, i64 noundef 224) #10
  br label %854

439:                                              ; preds = %370
  %440 = landingpad { ptr, i32 }
          cleanup
  br label %446

441:                                              ; preds = %371
  %442 = landingpad { ptr, i32 }
          cleanup
  br label %445

443:                                              ; preds = %372
  %444 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %445

445:                                              ; preds = %443, %441
  %.pn199 = phi { ptr, i32 } [ %444, %443 ], [ %442, %441 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %446

446:                                              ; preds = %445, %439
  %.pn199.pn = phi { ptr, i32 } [ %.pn199, %445 ], [ %440, %439 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #7
  br label %853

447:                                              ; preds = %375
  %448 = landingpad { ptr, i32 }
          cleanup
  br label %451

449:                                              ; preds = %376
  %450 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %451

451:                                              ; preds = %449, %447
  %.pn202 = phi { ptr, i32 } [ %450, %449 ], [ %448, %447 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #7
  br label %455

452:                                              ; preds = %381
  %453 = landingpad { ptr, i32 }
          cleanup
  br label %455

454:                                              ; preds = %381, %378
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %72) #7
  br label %456

455:                                              ; preds = %452, %451
  %.pn204 = phi { ptr, i32 } [ %453, %452 ], [ %.pn202, %451 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %72) #7
  br label %853

456:                                              ; preds = %454, %374
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  %457 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.38)
  br i1 %457, label %458, label %485

458:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %78) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %459 unwind label %469

459:                                              ; preds = %458
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull @.str.65, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %460 unwind label %471

460:                                              ; preds = %459
  %461 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %462 unwind label %473

462:                                              ; preds = %460
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %81) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %463 unwind label %477

463:                                              ; preds = %462
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull @.str.65, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %464 unwind label %479

464:                                              ; preds = %463
  %465 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %466 unwind label %481

466:                                              ; preds = %464
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #7
  br label %485

467:                                              ; preds = %487
  %468 = landingpad { ptr, i32 }
          cleanup
  br label %852

469:                                              ; preds = %458
  %470 = landingpad { ptr, i32 }
          cleanup
  br label %476

471:                                              ; preds = %459
  %472 = landingpad { ptr, i32 }
          cleanup
  br label %475

473:                                              ; preds = %460
  %474 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %475

475:                                              ; preds = %473, %471
  %.pn206 = phi { ptr, i32 } [ %474, %473 ], [ %472, %471 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %476

476:                                              ; preds = %475, %469
  %.pn206.pn = phi { ptr, i32 } [ %.pn206, %475 ], [ %470, %469 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #7
  br label %852

477:                                              ; preds = %462
  %478 = landingpad { ptr, i32 }
          cleanup
  br label %484

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

481:                                              ; preds = %464
  %482 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %483

483:                                              ; preds = %481, %479
  %.pn209 = phi { ptr, i32 } [ %482, %481 ], [ %480, %479 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  br label %484

484:                                              ; preds = %483, %477
  %.pn209.pn = phi { ptr, i32 } [ %.pn209, %483 ], [ %478, %477 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #7
  br label %852

485:                                              ; preds = %466, %456
  %486 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.36)
  br i1 %486, label %487, label %500

487:                                              ; preds = %485
  %488 = invoke noalias noundef nonnull dereferenceable(128) ptr @_Znwm(i64 noundef 128) #8
          to label %489 unwind label %467

489:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %83) #7
  %490 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %63)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef %490)
          to label %491 unwind label %.thread350

491:                                              ; preds = %489
  invoke void @_ZN10SimTKIpopt16MonotoneMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEE(ptr noundef nonnull align 8 dereferenceable(122) %488, ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %493 unwind label %.thread354

.thread354:                                       ; preds = %491
  %492 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #7
  br label %499

493:                                              ; preds = %491
  %494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull %488)
          to label %495 unwind label %497

495:                                              ; preds = %493
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #7
  br label %569

.thread350:                                       ; preds = %489
  %496 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #7
  br label %499

497:                                              ; preds = %493
  %498 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #7
  br label %852

499:                                              ; preds = %.thread354, %.thread350
  %.pn216353 = phi { ptr, i32 } [ %496, %.thread350 ], [ %492, %.thread354 ]
  call void @_ZdlPvm(ptr noundef nonnull %488, i64 noundef 128) #10
  br label %852

500:                                              ; preds = %485
  %501 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.38)
  br i1 %501, label %502, label %569

502:                                              ; preds = %500
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84)
  %503 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.46)
  br i1 %503, label %504, label %511

504:                                              ; preds = %502
  %505 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #8
          to label %506 unwind label %507

506:                                              ; preds = %504
  invoke void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %505)
          to label %.invoke unwind label %509

507:                                              ; preds = %.invoke, %520, %513, %504
  %508 = landingpad { ptr, i32 }
          cleanup
  br label %568

509:                                              ; preds = %506
  %510 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %505, i64 noundef 56) #10
  br label %568

511:                                              ; preds = %502
  %512 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.44)
  br i1 %512, label %513, label %518

513:                                              ; preds = %511
  %514 = invoke noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #8
          to label %515 unwind label %507

515:                                              ; preds = %513
  invoke void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72) %514, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %.invoke unwind label %516

516:                                              ; preds = %515
  %517 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %514, i64 noundef 72) #10
  br label %568

518:                                              ; preds = %511
  %519 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.43)
  br i1 %519, label %520, label %527

520:                                              ; preds = %518
  %521 = invoke noalias noundef nonnull dereferenceable(432) ptr @_Znwm(i64 noundef 432) #8
          to label %522 unwind label %507

522:                                              ; preds = %520
  invoke void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432) %521, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %.invoke unwind label %525

.invoke:                                          ; preds = %506, %522, %515
  %523 = phi ptr [ %514, %515 ], [ %521, %522 ], [ %505, %506 ]
  %524 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull %523)
          to label %527 unwind label %507

525:                                              ; preds = %522
  %526 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %521, i64 noundef 432) #10
  br label %568

527:                                              ; preds = %.invoke, %518
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85)
  %528 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.46)
  br i1 %528, label %529, label %536

529:                                              ; preds = %527
  %530 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #8
          to label %531 unwind label %532

531:                                              ; preds = %529
  invoke void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %530)
          to label %.invoke397 unwind label %534

532:                                              ; preds = %.invoke397, %554, %552, %545, %538, %529
  %533 = landingpad { ptr, i32 }
          cleanup
  br label %567

534:                                              ; preds = %531
  %535 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %530, i64 noundef 56) #10
  br label %567

536:                                              ; preds = %527
  %537 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.44)
  br i1 %537, label %538, label %543

538:                                              ; preds = %536
  %539 = invoke noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #8
          to label %540 unwind label %532

540:                                              ; preds = %538
  invoke void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72) %539, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %.invoke397 unwind label %541

541:                                              ; preds = %540
  %542 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %539, i64 noundef 72) #10
  br label %567

543:                                              ; preds = %536
  %544 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.43)
  br i1 %544, label %545, label %552

545:                                              ; preds = %543
  %546 = invoke noalias noundef nonnull dereferenceable(432) ptr @_Znwm(i64 noundef 432) #8
          to label %547 unwind label %532

547:                                              ; preds = %545
  invoke void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432) %546, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %.invoke397 unwind label %550

.invoke397:                                       ; preds = %531, %547, %540
  %548 = phi ptr [ %539, %540 ], [ %546, %547 ], [ %530, %531 ]
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull %548)
          to label %554 unwind label %532

550:                                              ; preds = %547
  %551 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %546, i64 noundef 432) #10
  br label %567

552:                                              ; preds = %543
  %553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef null)
          to label %554 unwind label %532

554:                                              ; preds = %.invoke397, %552
  %555 = invoke noalias noundef nonnull dereferenceable(304) ptr @_Znwm(i64 noundef 304) #8
          to label %556 unwind label %532

556:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #7
  %557 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %63)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef %557)
          to label %558 unwind label %.thread356

558:                                              ; preds = %556
  invoke void @_ZN10SimTKIpopt16AdaptiveMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEERKNS1_INS_8MuOracleEEES9_(ptr noundef nonnull align 8 dereferenceable(304) %555, ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %560 unwind label %.thread360

.thread360:                                       ; preds = %558
  %559 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #7
  br label %566

560:                                              ; preds = %558
  %561 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull %555)
          to label %562 unwind label %564

562:                                              ; preds = %560
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #7
  br label %569

.thread356:                                       ; preds = %556
  %563 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #7
  br label %566

564:                                              ; preds = %560
  %565 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #7
  br label %567

566:                                              ; preds = %.thread360, %.thread356
  %.pn212359 = phi { ptr, i32 } [ %563, %.thread356 ], [ %559, %.thread360 ]
  call void @_ZdlPvm(ptr noundef nonnull %555, i64 noundef 304) #10
  br label %567

567:                                              ; preds = %564, %566, %550, %541, %534, %532
  %.pn212.pn = phi { ptr, i32 } [ %.pn212359, %566 ], [ %565, %564 ], [ %533, %532 ], [ %535, %534 ], [ %542, %541 ], [ %551, %550 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #7
  br label %568

568:                                              ; preds = %567, %525, %516, %509, %507
  %.pn212.pn.pn = phi { ptr, i32 } [ %.pn212.pn, %567 ], [ %508, %507 ], [ %510, %509 ], [ %517, %516 ], [ %526, %525 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #7
  br label %852

569:                                              ; preds = %500, %562, %495
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #7
  %570 = invoke noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #8
          to label %571 unwind label %584

571:                                              ; preds = %569
  %572 = call noundef nonnull align 8 dereferenceable(49) ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
  invoke void @_ZN10SimTKIpopt22LeastSquareMultipliersC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(64) %570, ptr noundef nonnull align 8 dereferenceable(49) %572)
          to label %573 unwind label %586

573:                                              ; preds = %571
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull %570)
          to label %574 unwind label %584

574:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #7
  %575 = invoke noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #8
          to label %576 unwind label %588

576:                                              ; preds = %574
  invoke void @_ZN10SimTKIpopt23RestoIterateInitializerC1ERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(72) %575, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %577 unwind label %590

577:                                              ; preds = %576
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull %575)
          to label %578 unwind label %588

578:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #7
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19OrigIterationOutputEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef null)
          to label %579 unwind label %592

579:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #7
  %580 = invoke noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #8
          to label %581 unwind label %594

581:                                              ; preds = %579
  invoke void @_ZN10SimTKIpopt20RestoIterationOutputC1ERKNS_8SmartPtrINS_19OrigIterationOutputEEE(ptr noundef nonnull align 8 dereferenceable(65) %580, ptr noundef nonnull align 8 dereferenceable(8) %89)
          to label %582 unwind label %596

582:                                              ; preds = %581
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull %580)
          to label %583 unwind label %594

583:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91)
  switch i32 %274, label %612 [
    i32 0, label %598
    i32 1, label %605
  ]

584:                                              ; preds = %573, %569
  %585 = landingpad { ptr, i32 }
          cleanup
  br label %851

586:                                              ; preds = %571
  %587 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %570, i64 noundef 64) #10
  br label %851

588:                                              ; preds = %577, %574
  %589 = landingpad { ptr, i32 }
          cleanup
  br label %850

590:                                              ; preds = %576
  %591 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %575, i64 noundef 72) #10
  br label %850

592:                                              ; preds = %578
  %593 = landingpad { ptr, i32 }
          cleanup
  br label %849

594:                                              ; preds = %582, %579
  %595 = landingpad { ptr, i32 }
          cleanup
  br label %848

596:                                              ; preds = %581
  %597 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %580, i64 noundef 72) #10
  br label %848

598:                                              ; preds = %583
  %599 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #8
          to label %600 unwind label %601

600:                                              ; preds = %598
  invoke void @_ZN10SimTKIpopt19ExactHessianUpdaterC2Ev(ptr noundef nonnull align 8 dereferenceable(49) %599)
          to label %.invoke398 unwind label %603

601:                                              ; preds = %.invoke398, %605, %598
  %602 = landingpad { ptr, i32 }
          cleanup
  br label %847

603:                                              ; preds = %600
  %604 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %599, i64 noundef 56) #10
  br label %847

605:                                              ; preds = %583
  %606 = invoke noalias noundef nonnull dereferenceable(424) ptr @_Znwm(i64 noundef 424) #8
          to label %607 unwind label %601

607:                                              ; preds = %605
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdaterC1Eb(ptr noundef nonnull align 8 dereferenceable(424) %606, i1 noundef zeroext true)
          to label %.invoke398 unwind label %610

.invoke398:                                       ; preds = %600, %607
  %608 = phi ptr [ %606, %607 ], [ %599, %600 ]
  %609 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull %608)
          to label %612 unwind label %601

610:                                              ; preds = %607
  %611 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %606, i64 noundef 424) #10
  br label %847

612:                                              ; preds = %.invoke398, %583
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #7
  %613 = invoke noalias noundef nonnull dereferenceable(152) ptr @_Znwm(i64 noundef 152) #8
          to label %614 unwind label %656

614:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #7
  %615 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %63)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef %615)
          to label %616 unwind label %.thread362

616:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #7
  %617 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_8MuUpdateEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %67)
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef %617)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #7
  %618 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_27RestoFilterConvergenceCheckEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %59)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef %618)
          to label %619 unwind label %659

619:                                              ; preds = %616
  invoke void @_ZN10SimTKIpopt14IpoptAlgorithmC1ERKNS_8SmartPtrINS_14PDSystemSolverEEERKNS1_INS_10LineSearchEEERKNS1_INS_8MuUpdateEEERKNS1_INS_16ConvergenceCheckEEERKNS1_INS_18IterateInitializerEEERKNS1_INS_15IterationOutputEEERKNS1_INS_14HessianUpdaterEEERKNS1_INS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(152) %613, ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %620 unwind label %661

620:                                              ; preds = %619
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull %613)
          to label %621 unwind label %661

621:                                              ; preds = %620
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %96) #7
  %622 = invoke noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #8
          to label %623 unwind label %665

623:                                              ; preds = %621
  %624 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %92)
  invoke void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhaseC1ERNS_14IpoptAlgorithmERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(104) %622, ptr noundef nonnull align 8 dereferenceable(152) %624, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %625 unwind label %667

625:                                              ; preds = %623
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull %622)
          to label %626 unwind label %665

626:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %97) #7
  %627 = invoke noalias noundef nonnull dereferenceable(304) ptr @_Znwm(i64 noundef 304) #8
          to label %628 unwind label %669

628:                                              ; preds = %626
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #7
  %629 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_14PDSystemSolverEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %52)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef %629)
          to label %630 unwind label %.thread366

630:                                              ; preds = %628
  invoke void @_ZN10SimTKIpopt16FilterLSAcceptorC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(304) %627, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %632 unwind label %.thread370

.thread370:                                       ; preds = %630
  %631 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #7
  br label %674

632:                                              ; preds = %630
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull %627)
          to label %633 unwind label %672

633:                                              ; preds = %632
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #7
  %634 = invoke noalias noundef nonnull dereferenceable(224) ptr @_Znwm(i64 noundef 224) #8
          to label %635 unwind label %675

635:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #7
  %636 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_16FilterLSAcceptorEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %97)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef %636)
          to label %637 unwind label %.thread372

637:                                              ; preds = %635
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #7
  %638 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_16RestorationPhaseEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %96)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef %638)
          to label %639 unwind label %.thread376

639:                                              ; preds = %637
  invoke void @_ZN10SimTKIpopt22BacktrackingLineSearchC1ERKNS_8SmartPtrINS_22BacktrackingLSAcceptorEEERKNS1_INS_16RestorationPhaseEEERKNS1_INS_16ConvergenceCheckEEE(ptr noundef nonnull align 8 dereferenceable(224) %634, ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %640 unwind label %679

640:                                              ; preds = %639
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull %634)
          to label %641 unwind label %679

641:                                              ; preds = %640
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #7
  %642 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_27RestoFilterConvergenceCheckEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %59)
  %643 = call noundef nonnull align 8 dereferenceable(304) ptr @_ZNK10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %97)
  invoke void @_ZN10SimTKIpopt27RestoFilterConvergenceCheck23SetOrigFilterLSAcceptorERKNS_16FilterLSAcceptorE(ptr noundef nonnull align 8 dereferenceable(160) %642, ptr noundef nonnull align 8 dereferenceable(304) %643)
          to label %644 unwind label %682

644:                                              ; preds = %641
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %104) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %105) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %645 unwind label %684

645:                                              ; preds = %644
  %646 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %647 unwind label %686

647:                                              ; preds = %645
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #7
  br i1 %646, label %698, label %648

648:                                              ; preds = %647
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %106) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %108) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %649 unwind label %689

649:                                              ; preds = %648
  %650 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull align 4 dereferenceable(4) %106, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %651 unwind label %691

651:                                              ; preds = %649
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #7
  %652 = load i32, ptr %106, align 4
  %653 = icmp eq i32 %652, 1
  %or.cond302 = select i1 %650, i1 %653, i1 false
  br i1 %or.cond302, label %654, label %696

654:                                              ; preds = %651
  %655 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.38)
          to label %696 unwind label %694

656:                                              ; preds = %612
  %657 = landingpad { ptr, i32 }
          cleanup
  br label %846

.thread362:                                       ; preds = %614
  %658 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #7
  br label %664

659:                                              ; preds = %616
  %660 = landingpad { ptr, i32 }
          cleanup
  br label %663

661:                                              ; preds = %620, %619
  %.059 = phi i1 [ false, %620 ], [ true, %619 ]
  %662 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #7
  br label %663

663:                                              ; preds = %659, %661
  %.pn218 = phi { ptr, i32 } [ %662, %661 ], [ %660, %659 ]
  %.160 = phi i1 [ %.059, %661 ], [ true, %659 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #7
  br i1 %.160, label %664, label %846

664:                                              ; preds = %.thread362, %663
  %.pn218.pn365 = phi { ptr, i32 } [ %658, %.thread362 ], [ %.pn218, %663 ]
  call void @_ZdlPvm(ptr noundef nonnull %613, i64 noundef 152) #10
  br label %846

665:                                              ; preds = %625, %621
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %845

667:                                              ; preds = %623
  %668 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %622, i64 noundef 104) #10
  br label %845

669:                                              ; preds = %626
  %670 = landingpad { ptr, i32 }
          cleanup
  br label %844

.thread366:                                       ; preds = %628
  %671 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #7
  br label %674

672:                                              ; preds = %632
  %673 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #7
  br label %844

674:                                              ; preds = %.thread370, %.thread366
  %.pn221369 = phi { ptr, i32 } [ %671, %.thread366 ], [ %631, %.thread370 ]
  call void @_ZdlPvm(ptr noundef nonnull %627, i64 noundef 304) #10
  br label %844

675:                                              ; preds = %633
  %676 = landingpad { ptr, i32 }
          cleanup
  br label %843

.thread372:                                       ; preds = %635
  %677 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #7
  br label %681

.thread376:                                       ; preds = %637
  %678 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #7
  br label %681

679:                                              ; preds = %639, %640
  %.054 = phi i1 [ false, %640 ], [ true, %639 ]
  %680 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #7
  br i1 %.054, label %681, label %843

681:                                              ; preds = %.thread376, %.thread372, %679
  %.pn223.pn375 = phi { ptr, i32 } [ %677, %.thread372 ], [ %680, %679 ], [ %678, %.thread376 ]
  call void @_ZdlPvm(ptr noundef nonnull %634, i64 noundef 224) #10
  br label %843

682:                                              ; preds = %641
  %683 = landingpad { ptr, i32 }
          cleanup
  br label %842

684:                                              ; preds = %644
  %685 = landingpad { ptr, i32 }
          cleanup
  br label %688

686:                                              ; preds = %645
  %687 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  br label %688

688:                                              ; preds = %686, %684
  %.pn226 = phi { ptr, i32 } [ %687, %686 ], [ %685, %684 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #7
  br label %841

689:                                              ; preds = %648
  %690 = landingpad { ptr, i32 }
          cleanup
  br label %693

691:                                              ; preds = %649
  %692 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  br label %693

693:                                              ; preds = %691, %689
  %.pn228 = phi { ptr, i32 } [ %692, %691 ], [ %690, %689 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #7
  br label %697

694:                                              ; preds = %654
  %695 = landingpad { ptr, i32 }
          cleanup
  br label %697

696:                                              ; preds = %654, %651
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %106) #7
  br label %698

697:                                              ; preds = %694, %693
  %.pn230 = phi { ptr, i32 } [ %695, %694 ], [ %.pn228, %693 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %106) #7
  br label %841

698:                                              ; preds = %696, %647
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  %699 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.38)
  br i1 %699, label %700, label %719

700:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %111) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %112) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %701 unwind label %709

701:                                              ; preds = %700
  %702 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %703 unwind label %711

703:                                              ; preds = %701
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %113) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %114) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %114)
          to label %704 unwind label %714

704:                                              ; preds = %703
  %705 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList14GetStringValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_S8_(ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %706 unwind label %716

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

707:                                              ; preds = %721
  %708 = landingpad { ptr, i32 }
          cleanup
  br label %840

709:                                              ; preds = %700
  %710 = landingpad { ptr, i32 }
          cleanup
  br label %713

711:                                              ; preds = %701
  %712 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  br label %713

713:                                              ; preds = %711, %709
  %.pn232 = phi { ptr, i32 } [ %712, %711 ], [ %710, %709 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #7
  br label %840

714:                                              ; preds = %703
  %715 = landingpad { ptr, i32 }
          cleanup
  br label %718

716:                                              ; preds = %704
  %717 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  br label %718

718:                                              ; preds = %716, %714
  %.pn234 = phi { ptr, i32 } [ %717, %716 ], [ %715, %714 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %114) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #7
  br label %840

719:                                              ; preds = %706, %698
  %720 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.36)
  br i1 %720, label %721, label %734

721:                                              ; preds = %719
  %722 = invoke noalias noundef nonnull dereferenceable(128) ptr @_Znwm(i64 noundef 128) #8
          to label %723 unwind label %707

723:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %115) #7
  %724 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %99)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef %724)
          to label %725 unwind label %.thread379

725:                                              ; preds = %723
  invoke void @_ZN10SimTKIpopt16MonotoneMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEE(ptr noundef nonnull align 8 dereferenceable(122) %722, ptr noundef nonnull align 8 dereferenceable(8) %115)
          to label %727 unwind label %.thread383

.thread383:                                       ; preds = %725
  %726 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #7
  br label %733

727:                                              ; preds = %725
  %728 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull %722)
          to label %729 unwind label %731

729:                                              ; preds = %727
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #7
  br label %803

.thread379:                                       ; preds = %723
  %730 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #7
  br label %733

731:                                              ; preds = %727
  %732 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #7
  br label %840

733:                                              ; preds = %.thread383, %.thread379
  %.pn240382 = phi { ptr, i32 } [ %730, %.thread379 ], [ %726, %.thread383 ]
  call void @_ZdlPvm(ptr noundef nonnull %722, i64 noundef 128) #10
  br label %840

734:                                              ; preds = %719
  %735 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.38)
  br i1 %735, label %736, label %803

736:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %116) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %116)
  %737 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.46)
  br i1 %737, label %738, label %745

738:                                              ; preds = %736
  %739 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #8
          to label %740 unwind label %741

740:                                              ; preds = %738
  invoke void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %739)
          to label %.invoke399 unwind label %743

741:                                              ; preds = %.invoke399, %754, %747, %738
  %742 = landingpad { ptr, i32 }
          cleanup
  br label %802

743:                                              ; preds = %740
  %744 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %739, i64 noundef 56) #10
  br label %802

745:                                              ; preds = %736
  %746 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.44)
  br i1 %746, label %747, label %752

747:                                              ; preds = %745
  %748 = invoke noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #8
          to label %749 unwind label %741

749:                                              ; preds = %747
  invoke void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72) %748, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %.invoke399 unwind label %750

750:                                              ; preds = %749
  %751 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %748, i64 noundef 72) #10
  br label %802

752:                                              ; preds = %745
  %753 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.43)
  br i1 %753, label %754, label %761

754:                                              ; preds = %752
  %755 = invoke noalias noundef nonnull dereferenceable(432) ptr @_Znwm(i64 noundef 432) #8
          to label %756 unwind label %741

756:                                              ; preds = %754
  invoke void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432) %755, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %.invoke399 unwind label %759

.invoke399:                                       ; preds = %740, %756, %749
  %757 = phi ptr [ %748, %749 ], [ %755, %756 ], [ %739, %740 ]
  %758 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %116, ptr noundef nonnull %757)
          to label %761 unwind label %741

759:                                              ; preds = %756
  %760 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %755, i64 noundef 432) #10
  br label %802

761:                                              ; preds = %.invoke399, %752
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %117) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %117)
  %762 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str.46)
  br i1 %762, label %763, label %770

763:                                              ; preds = %761
  %764 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #8
          to label %765 unwind label %766

765:                                              ; preds = %763
  invoke void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49) %764)
          to label %.invoke400 unwind label %768

766:                                              ; preds = %.invoke400, %788, %786, %779, %772, %763
  %767 = landingpad { ptr, i32 }
          cleanup
  br label %801

768:                                              ; preds = %765
  %769 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %764, i64 noundef 56) #10
  br label %801

770:                                              ; preds = %761
  %771 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str.44)
  br i1 %771, label %772, label %777

772:                                              ; preds = %770
  %773 = invoke noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #8
          to label %774 unwind label %766

774:                                              ; preds = %772
  invoke void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72) %773, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %.invoke400 unwind label %775

775:                                              ; preds = %774
  %776 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %773, i64 noundef 72) #10
  br label %801

777:                                              ; preds = %770
  %778 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str.43)
  br i1 %778, label %779, label %786

779:                                              ; preds = %777
  %780 = invoke noalias noundef nonnull dereferenceable(432) ptr @_Znwm(i64 noundef 432) #8
          to label %781 unwind label %766

781:                                              ; preds = %779
  invoke void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432) %780, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %.invoke400 unwind label %784

.invoke400:                                       ; preds = %765, %781, %774
  %782 = phi ptr [ %773, %774 ], [ %780, %781 ], [ %764, %765 ]
  %783 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull %782)
          to label %788 unwind label %766

784:                                              ; preds = %781
  %785 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %780, i64 noundef 432) #10
  br label %801

786:                                              ; preds = %777
  %787 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef null)
          to label %788 unwind label %766

788:                                              ; preds = %.invoke400, %786
  %789 = invoke noalias noundef nonnull dereferenceable(304) ptr @_Znwm(i64 noundef 304) #8
          to label %790 unwind label %766

790:                                              ; preds = %788
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %118) #7
  %791 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %99)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef %791)
          to label %792 unwind label %.thread385

792:                                              ; preds = %790
  invoke void @_ZN10SimTKIpopt16AdaptiveMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEERKNS1_INS_8MuOracleEEES9_(ptr noundef nonnull align 8 dereferenceable(304) %789, ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef nonnull align 8 dereferenceable(8) %116, ptr noundef nonnull align 8 dereferenceable(8) %117)
          to label %794 unwind label %.thread389

.thread389:                                       ; preds = %792
  %793 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #7
  br label %800

794:                                              ; preds = %792
  %795 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull %789)
          to label %796 unwind label %798

796:                                              ; preds = %794
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %117) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #7
  br label %803

.thread385:                                       ; preds = %790
  %797 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #7
  br label %800

798:                                              ; preds = %794
  %799 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #7
  br label %801

800:                                              ; preds = %.thread389, %.thread385
  %.pn236388 = phi { ptr, i32 } [ %797, %.thread385 ], [ %793, %.thread389 ]
  call void @_ZdlPvm(ptr noundef nonnull %789, i64 noundef 304) #10
  br label %801

801:                                              ; preds = %798, %800, %784, %775, %768, %766
  %.pn236.pn = phi { ptr, i32 } [ %.pn236388, %800 ], [ %799, %798 ], [ %767, %766 ], [ %769, %768 ], [ %776, %775 ], [ %785, %784 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %117) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #7
  br label %802

802:                                              ; preds = %801, %759, %750, %743, %741
  %.pn236.pn.pn = phi { ptr, i32 } [ %.pn236.pn, %801 ], [ %742, %741 ], [ %744, %743 ], [ %751, %750 ], [ %760, %759 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuOracleEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %116) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #7
  br label %840

803:                                              ; preds = %734, %796, %729
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %119) #7
  %804 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #8
          to label %805 unwind label %808

805:                                              ; preds = %803
  invoke void @_ZN10SimTKIpopt19OrigIterationOutputC1Ev(ptr noundef nonnull align 8 dereferenceable(50) %804)
          to label %806 unwind label %810

806:                                              ; preds = %805
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull %804)
          to label %807 unwind label %808

807:                                              ; preds = %806
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %120) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120)
  switch i32 %274, label %826 [
    i32 0, label %812
    i32 1, label %819
  ]

808:                                              ; preds = %806, %803
  %809 = landingpad { ptr, i32 }
          cleanup
  br label %839

810:                                              ; preds = %805
  %811 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %804, i64 noundef 56) #10
  br label %839

812:                                              ; preds = %807
  %813 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #8
          to label %814 unwind label %815

814:                                              ; preds = %812
  invoke void @_ZN10SimTKIpopt19ExactHessianUpdaterC2Ev(ptr noundef nonnull align 8 dereferenceable(49) %813)
          to label %.invoke401 unwind label %817

815:                                              ; preds = %.invoke401, %826, %819, %812
  %816 = landingpad { ptr, i32 }
          cleanup
  br label %838

817:                                              ; preds = %814
  %818 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %813, i64 noundef 56) #10
  br label %838

819:                                              ; preds = %807
  %820 = invoke noalias noundef nonnull dereferenceable(424) ptr @_Znwm(i64 noundef 424) #8
          to label %821 unwind label %815

821:                                              ; preds = %819
  invoke void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdaterC1Eb(ptr noundef nonnull align 8 dereferenceable(424) %820, i1 noundef zeroext false)
          to label %.invoke401 unwind label %824

.invoke401:                                       ; preds = %814, %821
  %822 = phi ptr [ %820, %821 ], [ %813, %814 ]
  %823 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %120, ptr noundef nonnull %822)
          to label %826 unwind label %815

824:                                              ; preds = %821
  %825 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %820, i64 noundef 424) #10
  br label %838

826:                                              ; preds = %.invoke401, %807
  %827 = invoke noalias noundef nonnull dereferenceable(152) ptr @_Znwm(i64 noundef 152) #8
          to label %828 unwind label %815

828:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %121) #7
  %829 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10LineSearchEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %99)
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef %829)
          to label %830 unwind label %.thread391

830:                                              ; preds = %828
  invoke void @_ZN10SimTKIpopt14IpoptAlgorithmC1ERKNS_8SmartPtrINS_14PDSystemSolverEEERKNS1_INS_10LineSearchEEERKNS1_INS_8MuUpdateEEERKNS1_INS_16ConvergenceCheckEEERKNS1_INS_18IterateInitializerEEERKNS1_INS_15IterationOutputEEERKNS1_INS_14HessianUpdaterEEERKNS1_INS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(152) %827, ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %120, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %832 unwind label %.thread395

.thread395:                                       ; preds = %830
  %831 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #7
  br label %837

832:                                              ; preds = %830
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %827)
          to label %833 unwind label %835

833:                                              ; preds = %832
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_19OrigIterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21RestoRestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_27RestoFilterConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15SymLinearSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  ret void

.thread391:                                       ; preds = %828
  %834 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #7
  br label %837

835:                                              ; preds = %832
  %836 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #7
  br label %838

837:                                              ; preds = %.thread395, %.thread391
  %.pn242394 = phi { ptr, i32 } [ %834, %.thread391 ], [ %831, %.thread395 ]
  call void @_ZdlPvm(ptr noundef nonnull %827, i64 noundef 152) #10
  br label %838

838:                                              ; preds = %835, %837, %824, %817, %815
  %.pn242.pn = phi { ptr, i32 } [ %.pn242394, %837 ], [ %836, %835 ], [ %816, %815 ], [ %825, %824 ], [ %818, %817 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #7
  br label %839

839:                                              ; preds = %838, %810, %808
  %.pn242.pn.pn = phi { ptr, i32 } [ %.pn242.pn, %838 ], [ %809, %808 ], [ %811, %810 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #7
  br label %840

840:                                              ; preds = %731, %733, %839, %802, %718, %713, %707
  %.pn242.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn, %839 ], [ %.pn240382, %733 ], [ %732, %731 ], [ %708, %707 ], [ %.pn236.pn.pn, %802 ], [ %.pn234, %718 ], [ %.pn232, %713 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #7
  br label %841

841:                                              ; preds = %840, %697, %688
  %.pn242.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn, %840 ], [ %.pn230, %697 ], [ %.pn226, %688 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #7
  br label %842

842:                                              ; preds = %841, %682
  %.pn242.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn, %841 ], [ %683, %682 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #7
  br label %843

843:                                              ; preds = %679, %681, %842, %675
  %.pn242.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn, %842 ], [ %.pn223.pn375, %681 ], [ %680, %679 ], [ %676, %675 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #7
  br label %844

844:                                              ; preds = %672, %674, %843, %669
  %.pn242.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn, %843 ], [ %.pn221369, %674 ], [ %673, %672 ], [ %670, %669 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #7
  br label %845

845:                                              ; preds = %844, %667, %665
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn, %844 ], [ %666, %665 ], [ %668, %667 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IpoptAlgorithmEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #7
  br label %846

846:                                              ; preds = %663, %664, %845, %656
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn, %845 ], [ %.pn218.pn365, %664 ], [ %.pn218, %663 ], [ %657, %656 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #7
  br label %847

847:                                              ; preds = %846, %610, %603, %601
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn, %846 ], [ %602, %601 ], [ %611, %610 ], [ %604, %603 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14HessianUpdaterEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15IterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #7
  br label %848

848:                                              ; preds = %847, %596, %594
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %847 ], [ %595, %594 ], [ %597, %596 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_19OrigIterationOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #7
  br label %849

849:                                              ; preds = %848, %592
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %848 ], [ %593, %592 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #7
  br label %850

850:                                              ; preds = %849, %590, %588
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %849 ], [ %589, %588 ], [ %591, %590 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #7
  br label %851

851:                                              ; preds = %850, %586, %584
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %850 ], [ %585, %584 ], [ %587, %586 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #7
  br label %852

852:                                              ; preds = %497, %499, %851, %568, %484, %476, %467
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %851 ], [ %.pn216353, %499 ], [ %498, %497 ], [ %468, %467 ], [ %.pn212.pn.pn, %568 ], [ %.pn209.pn, %484 ], [ %.pn206.pn, %476 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  br label %853

853:                                              ; preds = %852, %455, %446
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %852 ], [ %.pn204, %455 ], [ %.pn199.pn, %446 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_8MuUpdateEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_10LineSearchEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #7
  br label %854

854:                                              ; preds = %437, %438, %853, %429
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %853 ], [ %.pn195.pn.pn346, %438 ], [ %.pn195, %437 ], [ %430, %429 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16FilterLSAcceptorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  br label %855

855:                                              ; preds = %426, %428, %854, %423
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %854 ], [ %.pn193340, %428 ], [ %427, %426 ], [ %424, %423 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21RestoRestorationPhaseEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #7
  br label %856

856:                                              ; preds = %855, %421, %419
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %855 ], [ %420, %419 ], [ %422, %421 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_27RestoFilterConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #7
  br label %857

857:                                              ; preds = %856, %417, %415
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %856 ], [ %416, %415 ], [ %418, %417 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #7
  br label %858

858:                                              ; preds = %857, %413, %411
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %857 ], [ %412, %411 ], [ %414, %413 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #7
  br label %859

859:                                              ; preds = %858, %409, %407
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %858 ], [ %408, %407 ], [ %410, %409 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #7
  br label %860

860:                                              ; preds = %859, %405, %403
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %859 ], [ %404, %403 ], [ %406, %405 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #7
  br label %861

861:                                              ; preds = %860, %401, %399
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %860 ], [ %400, %399 ], [ %402, %401 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_18IterateInitializerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #7
  br label %862

862:                                              ; preds = %861, %397, %395
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %861 ], [ %396, %395 ], [ %398, %397 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_22EqMultiplierCalculatorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #7
  br label %863

863:                                              ; preds = %862, %393, %391
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %862 ], [ %392, %391 ], [ %394, %393 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #7
  br label %864

864:                                              ; preds = %863, %389, %387
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %863 ], [ %388, %387 ], [ %390, %389 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_21PDPerturbationHandlerEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #7
  br label %865

865:                                              ; preds = %864, %385, %383
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %864 ], [ %384, %383 ], [ %386, %385 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #7
  br label %866

866:                                              ; preds = %306, %865, %299
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn189, %299 ], [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %865 ], [ %.pn191, %306 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #7
  br label %867

867:                                              ; preds = %866, %293, %291
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %866 ], [ %292, %291 ], [ %294, %293 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_15SymLinearSolverEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #7
  br label %868

868:                                              ; preds = %288, %290, %867, %284
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %867 ], [ %.pn186.pn333, %290 ], [ %289, %288 ], [ %285, %284 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  br label %869

869:                                              ; preds = %257, %258, %868, %243, %242
  %.pn276.pn.pn = phi { ptr, i32 } [ %.pn276.pn329, %258 ], [ %.pn276, %257 ], [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %868 ], [ %244, %243 ], [ %.pn184, %242 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_17TSymScalingMethodEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  br label %870

870:                                              ; preds = %217, %218, %203, %204, %189, %190, %175, %176, %161, %162, %147, %148, %869, %226, %140, %139
  %.pn295.pn.pn = phi { ptr, i32 } [ %.pn295.pn305, %148 ], [ %.pn295, %147 ], [ %.pn292.pn309, %162 ], [ %.pn292, %161 ], [ %.pn289.pn313, %176 ], [ %.pn289, %175 ], [ %.pn286.pn317, %190 ], [ %.pn286, %189 ], [ %.pn283.pn321, %204 ], [ %.pn283, %203 ], [ %.pn280.pn325, %218 ], [ %.pn280, %217 ], [ %.pn276.pn.pn, %869 ], [ %141, %140 ], [ %227, %226 ], [ %.pn, %139 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_30SparseSymLinearSolverInterfaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  br label %871

871:                                              ; preds = %870, %133
  %.pn295.pn.pn.pn = phi { ptr, i32 } [ %.pn295.pn.pn, %870 ], [ %134, %133 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  resume { ptr, i32 } %.pn295.pn.pn.pn

872:                                              ; preds = %251, %211, %197, %183, %169, %155, %132
  unreachable
}

declare void @_ZN10SimTKIpopt31OptimalityErrorConvergenceCheckC1Ev(ptr noundef nonnull align 8 dereferenceable(132)) unnamed_addr #3

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

declare void @_ZN10SimTKIpopt21LapackSolverInterfaceC1Ev(ptr noundef nonnull align 8 dereferenceable(113)) unnamed_addr #3

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

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

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

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

declare void @_ZN10SimTKIpopt16TSymLinearSolverC1ENS_8SmartPtrINS_30SparseSymLinearSolverInterfaceEEENS1_INS_17TSymScalingMethodEEE(ptr noundef nonnull align 8 dereferenceable(141), ptr noundef, ptr noundef) unnamed_addr #3

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

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

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

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

declare void @_ZN10SimTKIpopt18StdAugSystemSolverC1ERNS_15SymLinearSolverE(ptr noundef nonnull align 8 dereferenceable(233), ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

declare noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

declare void @_ZN10SimTKIpopt22LowRankAugSystemSolverC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt21PDPerturbationHandlerC1Ev(ptr noundef nonnull align 8 dereferenceable(216)) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt17PDFullSpaceSolverC1ERNS_15AugSystemSolverERNS_21PDPerturbationHandlerE(ptr noundef nonnull align 8 dereferenceable(136), ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(216)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt22LeastSquareMultipliersC1ERNS_15AugSystemSolverE(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt27WarmStartIterateInitializerC1Ev(ptr noundef nonnull align 8 dereferenceable(97)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt25DefaultIterateInitializerC1ERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEERKNS1_INS_18IterateInitializerEEE(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN10SimTKIpopt20AugRestoSystemSolverC1ERNS_15AugSystemSolverEb(ptr noundef nonnull align 8 dereferenceable(281), ptr noundef nonnull align 8 dereferenceable(49), i1 noundef zeroext) unnamed_addr #3

declare void @_ZN10SimTKIpopt27RestoFilterConvergenceCheckC1Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt21RestoRestorationPhaseC1Ev(ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt16FilterLSAcceptorC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(304), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt22BacktrackingLineSearchC1ERKNS_8SmartPtrINS_22BacktrackingLSAcceptorEEERKNS1_INS_16RestorationPhaseEEERKNS1_INS_16ConvergenceCheckEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

declare void @_ZN10SimTKIpopt16MonotoneMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEE(ptr noundef nonnull align 8 dereferenceable(122), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

declare void @_ZN10SimTKIpopt12LoqoMuOracleC1Ev(ptr noundef nonnull align 8 dereferenceable(49)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt15ProbingMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN10SimTKIpopt23QualityFunctionMuOracleC1ERKNS_8SmartPtrINS_14PDSystemSolverEEE(ptr noundef nonnull align 8 dereferenceable(432), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN10SimTKIpopt16AdaptiveMuUpdateC1ERKNS_8SmartPtrINS_10LineSearchEEERKNS1_INS_8MuOracleEEES9_(ptr noundef nonnull align 8 dereferenceable(304), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt23RestoIterateInitializerC1ERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

declare void @_ZN10SimTKIpopt20RestoIterationOutputC1ERKNS_8SmartPtrINS_19OrigIterationOutputEEE(ptr noundef nonnull align 8 dereferenceable(65), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

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

declare void @_ZN10SimTKIpopt24LimMemQuasiNewtonUpdaterC1Eb(ptr noundef nonnull align 8 dereferenceable(424), i1 noundef zeroext) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt14IpoptAlgorithmC1ERKNS_8SmartPtrINS_14PDSystemSolverEEERKNS1_INS_10LineSearchEEERKNS1_INS_8MuUpdateEEERKNS1_INS_16ConvergenceCheckEEERKNS1_INS_18IterateInitializerEEERKNS1_INS_15IterationOutputEEERKNS1_INS_14HessianUpdaterEEERKNS1_INS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

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

declare void @_ZN10SimTKIpopt25MinC_1NrmRestorationPhaseC1ERNS_14IpoptAlgorithmERKNS_8SmartPtrINS_22EqMultiplierCalculatorEEE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

declare void @_ZN10SimTKIpopt27RestoFilterConvergenceCheck23SetOrigFilterLSAcceptorERKNS_16FilterLSAcceptorE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(304)) local_unnamed_addr #3

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

declare void @_ZN10SimTKIpopt19OrigIterationOutputC1Ev(ptr noundef nonnull align 8 dereferenceable(50)) unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}


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