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

; 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.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" = type { i8 }
%"class.SimTKIpopt::StdInterfaceTNLP" = type { %"class.SimTKIpopt::TNLP.base", %"class.SimTKIpopt::SmartPtr", i32, i32, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.SimTKIpopt::TNLP.base" = type { %"class.SimTKIpopt::ReferencedObject.base" }
%"class.SimTKIpopt::ReferencedObject.base" = type <{ ptr, i32 }>
%"class.SimTKIpopt::SmartPtr" = type { ptr }

@_ZTVN10SimTKIpopt16StdInterfaceTNLPE = external dso_local unnamed_addr constant { [18 x ptr] }, align 8
@.str = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [103 x i8], align 1
@_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.4 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [77 x i8], align 1

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

147:                                              ; preds = %26
  %148 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 2
  %149 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %149, ptr %148, align 8, !tbaa !13
  %150 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 3
  %151 = load i32, ptr %31, align 4, !tbaa !9
  store i32 %151, ptr %150, align 4, !tbaa !18
  %152 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 4
  %153 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %153, ptr %152, align 8, !tbaa !19
  %154 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 5
  %155 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %155, ptr %154, align 8, !tbaa !20
  %156 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 6
  %157 = load ptr, ptr %32, align 8, !tbaa !5
  store ptr %157, ptr %156, align 8, !tbaa !21
  %158 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 7
  %159 = load ptr, ptr %33, align 8, !tbaa !5
  store ptr %159, ptr %158, align 8, !tbaa !22
  %160 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 8
  %161 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %161, ptr %160, align 8, !tbaa !23
  %162 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 9
  %163 = load i32, ptr %35, align 4, !tbaa !9
  store i32 %163, ptr %162, align 4, !tbaa !24
  %164 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 10
  %165 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %165, ptr %164, align 8, !tbaa !25
  %166 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 11
  %167 = load ptr, ptr %37, align 8, !tbaa !5
  store ptr %167, ptr %166, align 8, !tbaa !26
  %168 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 12
  %169 = load ptr, ptr %38, align 8, !tbaa !5
  store ptr %169, ptr %168, align 8, !tbaa !27
  %170 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 13
  %171 = load ptr, ptr %39, align 8, !tbaa !5
  store ptr %171, ptr %170, align 8, !tbaa !28
  %172 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 14
  %173 = load ptr, ptr %40, align 8, !tbaa !5
  store ptr %173, ptr %172, align 8, !tbaa !29
  %174 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 15
  %175 = load ptr, ptr %41, align 8, !tbaa !5
  store ptr %175, ptr %174, align 8, !tbaa !30
  %176 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 16
  %177 = load ptr, ptr %42, align 8, !tbaa !5
  store ptr %177, ptr %176, align 8, !tbaa !31
  %178 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 17
  %179 = load ptr, ptr %43, align 8, !tbaa !5
  store ptr %179, ptr %178, align 8, !tbaa !32
  %180 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 18
  %181 = load ptr, ptr %44, align 8, !tbaa !5
  store ptr %181, ptr %180, align 8, !tbaa !33
  %182 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 19
  %183 = load ptr, ptr %45, align 8, !tbaa !5
  store ptr %183, ptr %182, align 8, !tbaa !34
  %184 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 20
  %185 = load ptr, ptr %52, align 8, !tbaa !5
  store ptr %185, ptr %184, align 8, !tbaa !35
  %186 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 21
  store ptr null, ptr %186, align 8, !tbaa !36
  %187 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 22
  %188 = load ptr, ptr %46, align 8, !tbaa !5
  store ptr %188, ptr %187, align 8, !tbaa !37
  %189 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 23
  %190 = load ptr, ptr %47, align 8, !tbaa !5
  store ptr %190, ptr %189, align 8, !tbaa !38
  %191 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 24
  %192 = load ptr, ptr %48, align 8, !tbaa !5
  store ptr %192, ptr %191, align 8, !tbaa !39
  %193 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 25
  %194 = load ptr, ptr %49, align 8, !tbaa !5
  store ptr %194, ptr %193, align 8, !tbaa !40
  %195 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 26
  %196 = load ptr, ptr %50, align 8, !tbaa !5
  store ptr %196, ptr %195, align 8, !tbaa !41
  %197 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 27
  %198 = load ptr, ptr %51, align 8, !tbaa !5
  store ptr %198, ptr %197, align 8, !tbaa !42
  %199 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 2
  %200 = load i32, ptr %199, align 8, !tbaa !13
  %201 = icmp sgt i32 %200, 0
  br i1 %201, label %243, label %202

202:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %203 unwind label %216

203:                                              ; preds = %202
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #3
  %204 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.1)
          to label %205 unwind label %220

205:                                              ; preds = %203
  %206 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.2)
          to label %207 unwind label %220

207:                                              ; preds = %205
  store i1 true, ptr %60, align 1
  %208 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %209 unwind label %224

209:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %210 unwind label %228

210:                                              ; preds = %209
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %208, ptr noundef %57, ptr noundef %58, i32 noundef 67)
          to label %211 unwind label %232

211:                                              ; preds = %210
  store i1 false, ptr %60, align 1
  invoke void @__cxa_throw(ptr %208, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %232

212:                                              ; preds = %26
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %53, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %54, align 4
  br label %831

216:                                              ; preds = %202
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %53, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #3
  br label %242

220:                                              ; preds = %205, %203
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  store ptr %222, ptr %53, align 8
  %223 = extractvalue { ptr, i32 } %221, 1
  store i32 %223, ptr %54, align 4
  br label %241

224:                                              ; preds = %207
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %53, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %54, align 4
  br label %237

228:                                              ; preds = %209
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  store ptr %230, ptr %53, align 8
  %231 = extractvalue { ptr, i32 } %229, 1
  store i32 %231, ptr %54, align 4
  br label %236

232:                                              ; preds = %211, %210
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %53, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #3
  br label %236

236:                                              ; preds = %232, %228
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #3
  br label %237

237:                                              ; preds = %236, %224
  %238 = load i1, ptr %60, align 1
  br i1 %238, label %239, label %240

239:                                              ; preds = %237
  call void @__cxa_free_exception(ptr %208) #3
  br label %240

240:                                              ; preds = %239, %237
  br label %241

241:                                              ; preds = %240, %220
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #3
  br label %242

242:                                              ; preds = %241, %216
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #3
  br label %830

243:                                              ; preds = %147
  %244 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 3
  %245 = load i32, ptr %244, align 4, !tbaa !18
  %246 = icmp sge i32 %245, 0
  br i1 %246, label %284, label %247

247:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %248 unwind label %257

248:                                              ; preds = %247
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #3
  %249 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.1)
          to label %250 unwind label %261

250:                                              ; preds = %248
  %251 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.5)
          to label %252 unwind label %261

252:                                              ; preds = %250
  store i1 true, ptr %66, align 1
  %253 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %254 unwind label %265

254:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %255 unwind label %269

255:                                              ; preds = %254
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %253, ptr noundef %63, ptr noundef %64, i32 noundef 69)
          to label %256 unwind label %273

256:                                              ; preds = %255
  store i1 false, ptr %66, align 1
  invoke void @__cxa_throw(ptr %253, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %273

257:                                              ; preds = %247
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %53, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #3
  br label %283

261:                                              ; preds = %250, %248
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %53, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %54, align 4
  br label %282

265:                                              ; preds = %252
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %53, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %54, align 4
  br label %278

269:                                              ; preds = %254
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %53, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %54, align 4
  br label %277

273:                                              ; preds = %256, %255
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %53, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #3
  br label %277

277:                                              ; preds = %273, %269
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #3
  br label %278

278:                                              ; preds = %277, %265
  %279 = load i1, ptr %66, align 1
  br i1 %279, label %280, label %281

280:                                              ; preds = %278
  call void @__cxa_free_exception(ptr %253) #3
  br label %281

281:                                              ; preds = %280, %278
  br label %282

282:                                              ; preds = %281, %261
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #3
  br label %283

283:                                              ; preds = %282, %257
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #3
  br label %830

284:                                              ; preds = %243
  %285 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 4
  %286 = load ptr, ptr %285, align 8, !tbaa !19
  %287 = icmp ne ptr %286, null
  br i1 %287, label %325, label %288

288:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %289 unwind label %298

289:                                              ; preds = %288
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #3
  %290 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.1)
          to label %291 unwind label %302

291:                                              ; preds = %289
  %292 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.7)
          to label %293 unwind label %302

293:                                              ; preds = %291
  store i1 true, ptr %72, align 1
  %294 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %295 unwind label %306

295:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %296 unwind label %310

296:                                              ; preds = %295
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %294, ptr noundef %69, ptr noundef %70, i32 noundef 71)
          to label %297 unwind label %314

297:                                              ; preds = %296
  store i1 false, ptr %72, align 1
  invoke void @__cxa_throw(ptr %294, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %314

298:                                              ; preds = %288
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %53, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #3
  br label %324

302:                                              ; preds = %291, %289
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %53, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %54, align 4
  br label %323

306:                                              ; preds = %293
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %53, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %54, align 4
  br label %319

310:                                              ; preds = %295
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %53, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %54, align 4
  br label %318

314:                                              ; preds = %297, %296
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %53, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #3
  br label %318

318:                                              ; preds = %314, %310
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #3
  br label %319

319:                                              ; preds = %318, %306
  %320 = load i1, ptr %72, align 1
  br i1 %320, label %321, label %322

321:                                              ; preds = %319
  call void @__cxa_free_exception(ptr %294) #3
  br label %322

322:                                              ; preds = %321, %319
  br label %323

323:                                              ; preds = %322, %302
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #3
  br label %324

324:                                              ; preds = %323, %298
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #3
  br label %830

325:                                              ; preds = %284
  %326 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 5
  %327 = load ptr, ptr %326, align 8, !tbaa !20
  %328 = icmp ne ptr %327, null
  br i1 %328, label %366, label %329

329:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %330 unwind label %339

330:                                              ; preds = %329
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #3
  %331 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.1)
          to label %332 unwind label %343

332:                                              ; preds = %330
  %333 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.9)
          to label %334 unwind label %343

334:                                              ; preds = %332
  store i1 true, ptr %78, align 1
  %335 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %336 unwind label %347

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

337:                                              ; preds = %336
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %335, ptr noundef %75, ptr noundef %76, i32 noundef 73)
          to label %338 unwind label %355

338:                                              ; preds = %337
  store i1 false, ptr %78, align 1
  invoke void @__cxa_throw(ptr %335, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %355

339:                                              ; preds = %329
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %53, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #3
  br label %365

343:                                              ; preds = %332, %330
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %53, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %54, align 4
  br label %364

347:                                              ; preds = %334
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %53, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %54, align 4
  br label %360

351:                                              ; preds = %336
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %53, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %54, align 4
  br label %359

355:                                              ; preds = %338, %337
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %53, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #3
  br label %359

359:                                              ; preds = %355, %351
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #3
  br label %360

360:                                              ; preds = %359, %347
  %361 = load i1, ptr %78, align 1
  br i1 %361, label %362, label %363

362:                                              ; preds = %360
  call void @__cxa_free_exception(ptr %335) #3
  br label %363

363:                                              ; preds = %362, %360
  br label %364

364:                                              ; preds = %363, %343
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #3
  br label %365

365:                                              ; preds = %364, %339
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #3
  br label %830

366:                                              ; preds = %325
  %367 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 6
  %368 = load ptr, ptr %367, align 8, !tbaa !21
  %369 = icmp ne ptr %368, null
  br i1 %369, label %411, label %370

370:                                              ; preds = %366
  %371 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 3
  %372 = load i32, ptr %371, align 4, !tbaa !18
  %373 = icmp eq i32 %372, 0
  br i1 %373, label %411, label %374

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

375:                                              ; preds = %374
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #3
  %376 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str.1)
          to label %377 unwind label %388

377:                                              ; preds = %375
  %378 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str.11)
          to label %379 unwind label %388

379:                                              ; preds = %377
  store i1 true, ptr %84, align 1
  %380 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %381 unwind label %392

381:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %382 unwind label %396

382:                                              ; preds = %381
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %380, ptr noundef %81, ptr noundef %82, i32 noundef 75)
          to label %383 unwind label %400

383:                                              ; preds = %382
  store i1 false, ptr %84, align 1
  invoke void @__cxa_throw(ptr %380, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %400

384:                                              ; preds = %374
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %53, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #3
  br label %410

388:                                              ; preds = %377, %375
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %53, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %54, align 4
  br label %409

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

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

400:                                              ; preds = %383, %382
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %53, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #3
  br label %404

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

405:                                              ; preds = %404, %392
  %406 = load i1, ptr %84, align 1
  br i1 %406, label %407, label %408

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

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

409:                                              ; preds = %408, %388
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #3
  br label %410

410:                                              ; preds = %409, %384
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #3
  br label %830

411:                                              ; preds = %370, %366
  %412 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 7
  %413 = load ptr, ptr %412, align 8, !tbaa !22
  %414 = icmp ne ptr %413, null
  br i1 %414, label %456, label %415

415:                                              ; preds = %411
  %416 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 3
  %417 = load i32, ptr %416, align 4, !tbaa !18
  %418 = icmp eq i32 %417, 0
  br i1 %418, label %456, label %419

419:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %420 unwind label %429

420:                                              ; preds = %419
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #3
  %421 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef @.str.1)
          to label %422 unwind label %433

422:                                              ; preds = %420
  %423 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef @.str.13)
          to label %424 unwind label %433

424:                                              ; preds = %422
  store i1 true, ptr %90, align 1
  %425 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %426 unwind label %437

426:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %427 unwind label %441

427:                                              ; preds = %426
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %425, ptr noundef %87, ptr noundef %88, i32 noundef 77)
          to label %428 unwind label %445

428:                                              ; preds = %427
  store i1 false, ptr %90, align 1
  invoke void @__cxa_throw(ptr %425, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %445

429:                                              ; preds = %419
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %53, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #3
  br label %455

433:                                              ; preds = %422, %420
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %53, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %54, align 4
  br label %454

437:                                              ; preds = %424
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %53, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %54, align 4
  br label %450

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

445:                                              ; preds = %428, %427
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %53, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #3
  br label %449

449:                                              ; preds = %445, %441
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #3
  br label %450

450:                                              ; preds = %449, %437
  %451 = load i1, ptr %90, align 1
  br i1 %451, label %452, label %453

452:                                              ; preds = %450
  call void @__cxa_free_exception(ptr %425) #3
  br label %453

453:                                              ; preds = %452, %450
  br label %454

454:                                              ; preds = %453, %433
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #3
  br label %455

455:                                              ; preds = %454, %429
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #3
  br label %830

456:                                              ; preds = %415, %411
  %457 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 8
  %458 = load i32, ptr %457, align 8, !tbaa !23
  %459 = icmp sge i32 %458, 0
  br i1 %459, label %497, label %460

460:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %461 unwind label %470

461:                                              ; preds = %460
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #3
  %462 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.1)
          to label %463 unwind label %474

463:                                              ; preds = %461
  %464 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.15)
          to label %465 unwind label %474

465:                                              ; preds = %463
  store i1 true, ptr %96, align 1
  %466 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %467 unwind label %478

467:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %468 unwind label %482

468:                                              ; preds = %467
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef %93, ptr noundef %94, i32 noundef 79)
          to label %469 unwind label %486

469:                                              ; preds = %468
  store i1 false, ptr %96, align 1
  invoke void @__cxa_throw(ptr %466, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %486

470:                                              ; preds = %460
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %53, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #3
  br label %496

474:                                              ; preds = %463, %461
  %475 = landingpad { ptr, i32 }
          cleanup
  %476 = extractvalue { ptr, i32 } %475, 0
  store ptr %476, ptr %53, align 8
  %477 = extractvalue { ptr, i32 } %475, 1
  store i32 %477, ptr %54, align 4
  br label %495

478:                                              ; preds = %465
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %53, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %54, align 4
  br label %491

482:                                              ; preds = %467
  %483 = landingpad { ptr, i32 }
          cleanup
  %484 = extractvalue { ptr, i32 } %483, 0
  store ptr %484, ptr %53, align 8
  %485 = extractvalue { ptr, i32 } %483, 1
  store i32 %485, ptr %54, align 4
  br label %490

486:                                              ; preds = %469, %468
  %487 = landingpad { ptr, i32 }
          cleanup
  %488 = extractvalue { ptr, i32 } %487, 0
  store ptr %488, ptr %53, align 8
  %489 = extractvalue { ptr, i32 } %487, 1
  store i32 %489, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #3
  br label %490

490:                                              ; preds = %486, %482
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #3
  br label %491

491:                                              ; preds = %490, %478
  %492 = load i1, ptr %96, align 1
  br i1 %492, label %493, label %494

493:                                              ; preds = %491
  call void @__cxa_free_exception(ptr %466) #3
  br label %494

494:                                              ; preds = %493, %491
  br label %495

495:                                              ; preds = %494, %474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #3
  br label %496

496:                                              ; preds = %495, %470
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #3
  br label %830

497:                                              ; preds = %456
  %498 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 9
  %499 = load i32, ptr %498, align 4, !tbaa !24
  %500 = icmp sge i32 %499, 0
  br i1 %500, label %538, label %501

501:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %502 unwind label %511

502:                                              ; preds = %501
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #3
  %503 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.1)
          to label %504 unwind label %515

504:                                              ; preds = %502
  %505 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.17)
          to label %506 unwind label %515

506:                                              ; preds = %504
  store i1 true, ptr %102, align 1
  %507 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %508 unwind label %519

508:                                              ; preds = %506
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %509 unwind label %523

509:                                              ; preds = %508
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %507, ptr noundef %99, ptr noundef %100, i32 noundef 81)
          to label %510 unwind label %527

510:                                              ; preds = %509
  store i1 false, ptr %102, align 1
  invoke void @__cxa_throw(ptr %507, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %527

511:                                              ; preds = %501
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %53, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #3
  br label %537

515:                                              ; preds = %504, %502
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %53, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %54, align 4
  br label %536

519:                                              ; preds = %506
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %53, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %54, align 4
  br label %532

523:                                              ; preds = %508
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %53, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %54, align 4
  br label %531

527:                                              ; preds = %510, %509
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %53, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #3
  br label %531

531:                                              ; preds = %527, %523
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #3
  br label %532

532:                                              ; preds = %531, %519
  %533 = load i1, ptr %102, align 1
  br i1 %533, label %534, label %535

534:                                              ; preds = %532
  call void @__cxa_free_exception(ptr %507) #3
  br label %535

535:                                              ; preds = %534, %532
  br label %536

536:                                              ; preds = %535, %515
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #3
  br label %537

537:                                              ; preds = %536, %511
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #3
  br label %830

538:                                              ; preds = %497
  %539 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 10
  %540 = load i32, ptr %539, align 8, !tbaa !25
  %541 = icmp eq i32 %540, 0
  br i1 %541, label %583, label %542

542:                                              ; preds = %538
  %543 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 10
  %544 = load i32, ptr %543, align 8, !tbaa !25
  %545 = icmp eq i32 %544, 1
  br i1 %545, label %583, label %546

546:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %104) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %104)
          to label %547 unwind label %556

547:                                              ; preds = %546
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #3
  %548 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef @.str.1)
          to label %549 unwind label %560

549:                                              ; preds = %547
  %550 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef @.str.19)
          to label %551 unwind label %560

551:                                              ; preds = %549
  store i1 true, ptr %108, align 1
  %552 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %553 unwind label %564

553:                                              ; preds = %551
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %554 unwind label %568

554:                                              ; preds = %553
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %552, ptr noundef %105, ptr noundef %106, i32 noundef 83)
          to label %555 unwind label %572

555:                                              ; preds = %554
  store i1 false, ptr %108, align 1
  invoke void @__cxa_throw(ptr %552, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %572

556:                                              ; preds = %546
  %557 = landingpad { ptr, i32 }
          cleanup
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %53, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #3
  br label %582

560:                                              ; preds = %549, %547
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %53, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %54, align 4
  br label %581

564:                                              ; preds = %551
  %565 = landingpad { ptr, i32 }
          cleanup
  %566 = extractvalue { ptr, i32 } %565, 0
  store ptr %566, ptr %53, align 8
  %567 = extractvalue { ptr, i32 } %565, 1
  store i32 %567, ptr %54, align 4
  br label %577

568:                                              ; preds = %553
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %53, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %54, align 4
  br label %576

572:                                              ; preds = %555, %554
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %53, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #3
  br label %576

576:                                              ; preds = %572, %568
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #3
  br label %577

577:                                              ; preds = %576, %564
  %578 = load i1, ptr %108, align 1
  br i1 %578, label %579, label %580

579:                                              ; preds = %577
  call void @__cxa_free_exception(ptr %552) #3
  br label %580

580:                                              ; preds = %579, %577
  br label %581

581:                                              ; preds = %580, %560
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #3
  br label %582

582:                                              ; preds = %581, %556
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #3
  br label %830

583:                                              ; preds = %542, %538
  %584 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 11
  %585 = load ptr, ptr %584, align 8, !tbaa !26
  %586 = icmp ne ptr %585, null
  br i1 %586, label %624, label %587

587:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %110) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %588 unwind label %597

588:                                              ; preds = %587
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #3
  %589 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef @.str.1)
          to label %590 unwind label %601

590:                                              ; preds = %588
  %591 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef @.str.21)
          to label %592 unwind label %601

592:                                              ; preds = %590
  store i1 true, ptr %114, align 1
  %593 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %594 unwind label %605

594:                                              ; preds = %592
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %595 unwind label %609

595:                                              ; preds = %594
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %593, ptr noundef %111, ptr noundef %112, i32 noundef 85)
          to label %596 unwind label %613

596:                                              ; preds = %595
  store i1 false, ptr %114, align 1
  invoke void @__cxa_throw(ptr %593, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %613

597:                                              ; preds = %587
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %53, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #3
  br label %623

601:                                              ; preds = %590, %588
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %53, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %54, align 4
  br label %622

605:                                              ; preds = %592
  %606 = landingpad { ptr, i32 }
          cleanup
  %607 = extractvalue { ptr, i32 } %606, 0
  store ptr %607, ptr %53, align 8
  %608 = extractvalue { ptr, i32 } %606, 1
  store i32 %608, ptr %54, align 4
  br label %618

609:                                              ; preds = %594
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %53, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %54, align 4
  br label %617

613:                                              ; preds = %596, %595
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %53, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #3
  br label %617

617:                                              ; preds = %613, %609
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #3
  br label %618

618:                                              ; preds = %617, %605
  %619 = load i1, ptr %114, align 1
  br i1 %619, label %620, label %621

620:                                              ; preds = %618
  call void @__cxa_free_exception(ptr %593) #3
  br label %621

621:                                              ; preds = %620, %618
  br label %622

622:                                              ; preds = %621, %601
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #3
  br label %623

623:                                              ; preds = %622, %597
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #3
  br label %830

624:                                              ; preds = %583
  %625 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 15
  %626 = load ptr, ptr %625, align 8, !tbaa !30
  %627 = icmp ne ptr %626, null
  br i1 %627, label %665, label %628

628:                                              ; preds = %624
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %629 unwind label %638

629:                                              ; preds = %628
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #3
  %630 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.1)
          to label %631 unwind label %642

631:                                              ; preds = %629
  %632 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.23)
          to label %633 unwind label %642

633:                                              ; preds = %631
  store i1 true, ptr %120, align 1
  %634 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %635 unwind label %646

635:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %636 unwind label %650

636:                                              ; preds = %635
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %634, ptr noundef %117, ptr noundef %118, i32 noundef 87)
          to label %637 unwind label %654

637:                                              ; preds = %636
  store i1 false, ptr %120, align 1
  invoke void @__cxa_throw(ptr %634, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %654

638:                                              ; preds = %628
  %639 = landingpad { ptr, i32 }
          cleanup
  %640 = extractvalue { ptr, i32 } %639, 0
  store ptr %640, ptr %53, align 8
  %641 = extractvalue { ptr, i32 } %639, 1
  store i32 %641, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #3
  br label %664

642:                                              ; preds = %631, %629
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %53, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %54, align 4
  br label %663

646:                                              ; preds = %633
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %53, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %54, align 4
  br label %659

650:                                              ; preds = %635
  %651 = landingpad { ptr, i32 }
          cleanup
  %652 = extractvalue { ptr, i32 } %651, 0
  store ptr %652, ptr %53, align 8
  %653 = extractvalue { ptr, i32 } %651, 1
  store i32 %653, ptr %54, align 4
  br label %658

654:                                              ; preds = %637, %636
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %53, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #3
  br label %658

658:                                              ; preds = %654, %650
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #3
  br label %659

659:                                              ; preds = %658, %646
  %660 = load i1, ptr %120, align 1
  br i1 %660, label %661, label %662

661:                                              ; preds = %659
  call void @__cxa_free_exception(ptr %634) #3
  br label %662

662:                                              ; preds = %661, %659
  br label %663

663:                                              ; preds = %662, %642
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #3
  br label %664

664:                                              ; preds = %663, %638
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #3
  br label %830

665:                                              ; preds = %624
  %666 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 16
  %667 = load ptr, ptr %666, align 8, !tbaa !31
  %668 = icmp ne ptr %667, null
  br i1 %668, label %706, label %669

669:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %122) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %122) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %122)
          to label %670 unwind label %679

670:                                              ; preds = %669
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %122) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %122) #3
  %671 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef @.str.1)
          to label %672 unwind label %683

672:                                              ; preds = %670
  %673 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef @.str.25)
          to label %674 unwind label %683

674:                                              ; preds = %672
  store i1 true, ptr %126, align 1
  %675 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %676 unwind label %687

676:                                              ; preds = %674
  call void @llvm.lifetime.start.p0(i64 1, ptr %125) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %125)
          to label %677 unwind label %691

677:                                              ; preds = %676
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %675, ptr noundef %123, ptr noundef %124, i32 noundef 89)
          to label %678 unwind label %695

678:                                              ; preds = %677
  store i1 false, ptr %126, align 1
  invoke void @__cxa_throw(ptr %675, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %695

679:                                              ; preds = %669
  %680 = landingpad { ptr, i32 }
          cleanup
  %681 = extractvalue { ptr, i32 } %680, 0
  store ptr %681, ptr %53, align 8
  %682 = extractvalue { ptr, i32 } %680, 1
  store i32 %682, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %122) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %122) #3
  br label %705

683:                                              ; preds = %672, %670
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %53, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %54, align 4
  br label %704

687:                                              ; preds = %674
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %53, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %54, align 4
  br label %700

691:                                              ; preds = %676
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %53, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %54, align 4
  br label %699

695:                                              ; preds = %678, %677
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %53, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #3
  br label %699

699:                                              ; preds = %695, %691
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %125) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #3
  br label %700

700:                                              ; preds = %699, %687
  %701 = load i1, ptr %126, align 1
  br i1 %701, label %702, label %703

702:                                              ; preds = %700
  call void @__cxa_free_exception(ptr %675) #3
  br label %703

703:                                              ; preds = %702, %700
  br label %704

704:                                              ; preds = %703, %683
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #3
  br label %705

705:                                              ; preds = %704, %679
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #3
  br label %830

706:                                              ; preds = %665
  %707 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 17
  %708 = load ptr, ptr %707, align 8, !tbaa !32
  %709 = icmp ne ptr %708, null
  br i1 %709, label %747, label %710

710:                                              ; preds = %706
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %128) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %128)
          to label %711 unwind label %720

711:                                              ; preds = %710
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #3
  %712 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.1)
          to label %713 unwind label %724

713:                                              ; preds = %711
  %714 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.27)
          to label %715 unwind label %724

715:                                              ; preds = %713
  store i1 true, ptr %132, align 1
  %716 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull align 8 dereferenceable(32) %127)
          to label %717 unwind label %728

717:                                              ; preds = %715
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %718 unwind label %732

718:                                              ; preds = %717
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %716, ptr noundef %129, ptr noundef %130, i32 noundef 91)
          to label %719 unwind label %736

719:                                              ; preds = %718
  store i1 false, ptr %132, align 1
  invoke void @__cxa_throw(ptr %716, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %736

720:                                              ; preds = %710
  %721 = landingpad { ptr, i32 }
          cleanup
  %722 = extractvalue { ptr, i32 } %721, 0
  store ptr %722, ptr %53, align 8
  %723 = extractvalue { ptr, i32 } %721, 1
  store i32 %723, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #3
  br label %746

724:                                              ; preds = %713, %711
  %725 = landingpad { ptr, i32 }
          cleanup
  %726 = extractvalue { ptr, i32 } %725, 0
  store ptr %726, ptr %53, align 8
  %727 = extractvalue { ptr, i32 } %725, 1
  store i32 %727, ptr %54, align 4
  br label %745

728:                                              ; preds = %715
  %729 = landingpad { ptr, i32 }
          cleanup
  %730 = extractvalue { ptr, i32 } %729, 0
  store ptr %730, ptr %53, align 8
  %731 = extractvalue { ptr, i32 } %729, 1
  store i32 %731, ptr %54, align 4
  br label %741

732:                                              ; preds = %717
  %733 = landingpad { ptr, i32 }
          cleanup
  %734 = extractvalue { ptr, i32 } %733, 0
  store ptr %734, ptr %53, align 8
  %735 = extractvalue { ptr, i32 } %733, 1
  store i32 %735, ptr %54, align 4
  br label %740

736:                                              ; preds = %719, %718
  %737 = landingpad { ptr, i32 }
          cleanup
  %738 = extractvalue { ptr, i32 } %737, 0
  store ptr %738, ptr %53, align 8
  %739 = extractvalue { ptr, i32 } %737, 1
  store i32 %739, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #3
  br label %740

740:                                              ; preds = %736, %732
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #3
  br label %741

741:                                              ; preds = %740, %728
  %742 = load i1, ptr %132, align 1
  br i1 %742, label %743, label %744

743:                                              ; preds = %741
  call void @__cxa_free_exception(ptr %716) #3
  br label %744

744:                                              ; preds = %743, %741
  br label %745

745:                                              ; preds = %744, %724
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #3
  br label %746

746:                                              ; preds = %745, %720
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #3
  br label %830

747:                                              ; preds = %706
  %748 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 18
  %749 = load ptr, ptr %748, align 8, !tbaa !33
  %750 = icmp ne ptr %749, null
  br i1 %750, label %788, label %751

751:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %134) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %134)
          to label %752 unwind label %761

752:                                              ; preds = %751
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #3
  %753 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.1)
          to label %754 unwind label %765

754:                                              ; preds = %752
  %755 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.29)
          to label %756 unwind label %765

756:                                              ; preds = %754
  store i1 true, ptr %138, align 1
  %757 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %758 unwind label %769

758:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 1, ptr %137) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %759 unwind label %773

759:                                              ; preds = %758
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %757, ptr noundef %135, ptr noundef %136, i32 noundef 93)
          to label %760 unwind label %777

760:                                              ; preds = %759
  store i1 false, ptr %138, align 1
  invoke void @__cxa_throw(ptr %757, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %777

761:                                              ; preds = %751
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %53, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #3
  br label %787

765:                                              ; preds = %754, %752
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %53, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %54, align 4
  br label %786

769:                                              ; preds = %756
  %770 = landingpad { ptr, i32 }
          cleanup
  %771 = extractvalue { ptr, i32 } %770, 0
  store ptr %771, ptr %53, align 8
  %772 = extractvalue { ptr, i32 } %770, 1
  store i32 %772, ptr %54, align 4
  br label %782

773:                                              ; preds = %758
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %53, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %54, align 4
  br label %781

777:                                              ; preds = %760, %759
  %778 = landingpad { ptr, i32 }
          cleanup
  %779 = extractvalue { ptr, i32 } %778, 0
  store ptr %779, ptr %53, align 8
  %780 = extractvalue { ptr, i32 } %778, 1
  store i32 %780, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #3
  br label %781

781:                                              ; preds = %777, %773
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #3
  br label %782

782:                                              ; preds = %781, %769
  %783 = load i1, ptr %138, align 1
  br i1 %783, label %784, label %785

784:                                              ; preds = %782
  call void @__cxa_free_exception(ptr %757) #3
  br label %785

785:                                              ; preds = %784, %782
  br label %786

786:                                              ; preds = %785, %765
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #3
  br label %787

787:                                              ; preds = %786, %761
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #3
  br label %830

788:                                              ; preds = %747
  %789 = getelementptr inbounds %"class.SimTKIpopt::StdInterfaceTNLP", ptr %145, i32 0, i32 19
  %790 = load ptr, ptr %789, align 8, !tbaa !34
  %791 = icmp ne ptr %790, null
  br i1 %791, label %829, label %792

792:                                              ; preds = %788
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %140) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %140)
          to label %793 unwind label %802

793:                                              ; preds = %792
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #3
  %794 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str.1)
          to label %795 unwind label %806

795:                                              ; preds = %793
  %796 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str.31)
          to label %797 unwind label %806

797:                                              ; preds = %795
  store i1 true, ptr %144, align 1
  %798 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %799 unwind label %810

799:                                              ; preds = %797
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %800 unwind label %814

800:                                              ; preds = %799
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %798, ptr noundef %141, ptr noundef %142, i32 noundef 95)
          to label %801 unwind label %818

801:                                              ; preds = %800
  store i1 false, ptr %144, align 1
  invoke void @__cxa_throw(ptr %798, ptr @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %837 unwind label %818

802:                                              ; preds = %792
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %53, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %54, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #3
  br label %828

806:                                              ; preds = %795, %793
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %53, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %54, align 4
  br label %827

810:                                              ; preds = %797
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %53, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %54, align 4
  br label %823

814:                                              ; preds = %799
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %53, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %54, align 4
  br label %822

818:                                              ; preds = %801, %800
  %819 = landingpad { ptr, i32 }
          cleanup
  %820 = extractvalue { ptr, i32 } %819, 0
  store ptr %820, ptr %53, align 8
  %821 = extractvalue { ptr, i32 } %819, 1
  store i32 %821, ptr %54, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #3
  br label %822

822:                                              ; preds = %818, %814
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #3
  br label %823

823:                                              ; preds = %822, %810
  %824 = load i1, ptr %144, align 1
  br i1 %824, label %825, label %826

825:                                              ; preds = %823
  call void @__cxa_free_exception(ptr %798) #3
  br label %826

826:                                              ; preds = %825, %823
  br label %827

827:                                              ; preds = %826, %806
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #3
  br label %828

828:                                              ; preds = %827, %802
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #3
  br label %830

829:                                              ; preds = %788
  ret void

830:                                              ; preds = %828, %787, %746, %705, %664, %623, %582, %537, %496, %455, %410, %365, %324, %283, %242
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_10JournalistEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #3
  br label %831

831:                                              ; preds = %830, %212
  call void @_ZN10SimTKIpopt16ReferencedObjectD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %145) #3
  br label %832

832:                                              ; preds = %831
  %833 = load ptr, ptr %53, align 8
  %834 = load i32, ptr %54, align 4
  %835 = insertvalue { ptr, i32 } poison, ptr %833, 0
  %836 = insertvalue { ptr, i32 } %835, i32 %834, 1
  resume { ptr, i32 } %836

837:                                              ; preds = %801, %760, %719, %678, %637, %596, %555, %510, %469, %428, %383, %338, %297, %256, %211
  unreachable
}

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare ptr @__cxa_allocate_exception(i64)

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

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

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

declare void @__cxa_free_exception(ptr)

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"vtable pointer", !8, i64 0}
!13 = !{!14, !10, i64 24}
!14 = !{!"_ZTSN10SimTKIpopt16StdInterfaceTNLPE", !15, i64 0, !17, i64 16, !10, i64 24, !10, i64 28, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !10, i64 64, !10, i64 68, !10, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208}
!15 = !{!"_ZTSN10SimTKIpopt4TNLPE", !16, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !10, i64 8}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!18 = !{!14, !10, i64 28}
!19 = !{!14, !6, i64 32}
!20 = !{!14, !6, i64 40}
!21 = !{!14, !6, i64 48}
!22 = !{!14, !6, i64 56}
!23 = !{!14, !10, i64 64}
!24 = !{!14, !10, i64 68}
!25 = !{!14, !10, i64 72}
!26 = !{!14, !6, i64 80}
!27 = !{!14, !6, i64 88}
!28 = !{!14, !6, i64 96}
!29 = !{!14, !6, i64 104}
!30 = !{!14, !6, i64 112}
!31 = !{!14, !6, i64 120}
!32 = !{!14, !6, i64 128}
!33 = !{!14, !6, i64 136}
!34 = !{!14, !6, i64 144}
!35 = !{!14, !6, i64 152}
!36 = !{!14, !6, i64 160}
!37 = !{!14, !6, i64 168}
!38 = !{!14, !6, i64 176}
!39 = !{!14, !6, i64 184}
!40 = !{!14, !6, i64 192}
!41 = !{!14, !6, i64 200}
!42 = !{!14, !6, i64 208}


; 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.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" = type { i8 }

@_ZTVN10SimTKIpopt16StdInterfaceTNLPE = external dso_local unnamed_addr constant { [18 x ptr] }, align 8
@.str = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [103 x i8], align 1
@_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.4 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [77 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10SimTKIpopt16StdInterfaceTNLPC2EiPKdS2_iS2_S2_iiiS2_S2_S2_S2_PFiiS2_iPdPvEPFiiS2_iiS3_S4_ES6_PFiiS2_iiiPiS9_S3_S4_EPFiiS2_idiS3_iiS9_S9_S3_S4_ES3_S3_S3_S3_S3_S3_S4_(ptr noundef nonnull align 8 dereferenceable(216) %0, i32 noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, ptr noundef %5, ptr noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::allocator", align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", 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", align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::allocator", align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::allocator", align 1
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator", align 1
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator", align 1
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::allocator", align 1
  tail call void @_ZN10SimTKIpopt4TNLPC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %0)
  store ptr getelementptr inbounds inrange(-16, 128) (i8, ptr @_ZTVN10SimTKIpopt16StdInterfaceTNLPE, i64 16), ptr %0, align 8, !tbaa !5
  %102 = getelementptr inbounds i8, ptr %0, i64 16
  tail call void @_ZN10SimTKIpopt8SmartPtrIKNS_10JournalistEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102)
  %103 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %1, ptr %103, align 8, !tbaa !8
  %104 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 %4, ptr %104, align 4, !tbaa !16
  %105 = getelementptr inbounds i8, ptr %0, i64 32
  store ptr %2, ptr %105, align 8, !tbaa !17
  %106 = getelementptr inbounds i8, ptr %0, i64 40
  store ptr %3, ptr %106, align 8, !tbaa !18
  %107 = getelementptr inbounds i8, ptr %0, i64 48
  store ptr %5, ptr %107, align 8, !tbaa !19
  %108 = getelementptr inbounds i8, ptr %0, i64 56
  store ptr %6, ptr %108, align 8, !tbaa !20
  %109 = getelementptr inbounds i8, ptr %0, i64 64
  store i32 %7, ptr %109, align 8, !tbaa !21
  %110 = getelementptr inbounds i8, ptr %0, i64 68
  store i32 %8, ptr %110, align 4, !tbaa !22
  %111 = getelementptr inbounds i8, ptr %0, i64 72
  store i32 %9, ptr %111, align 8, !tbaa !23
  %112 = getelementptr inbounds i8, ptr %0, i64 80
  store ptr %10, ptr %112, align 8, !tbaa !24
  %113 = getelementptr inbounds i8, ptr %0, i64 88
  store ptr %11, ptr %113, align 8, !tbaa !25
  %114 = getelementptr inbounds i8, ptr %0, i64 96
  store ptr %12, ptr %114, align 8, !tbaa !26
  %115 = getelementptr inbounds i8, ptr %0, i64 104
  store ptr %13, ptr %115, align 8, !tbaa !27
  %116 = getelementptr inbounds i8, ptr %0, i64 112
  store ptr %14, ptr %116, align 8, !tbaa !28
  %117 = getelementptr inbounds i8, ptr %0, i64 120
  store ptr %15, ptr %117, align 8, !tbaa !29
  %118 = getelementptr inbounds i8, ptr %0, i64 128
  store ptr %16, ptr %118, align 8, !tbaa !30
  %119 = getelementptr inbounds i8, ptr %0, i64 136
  store ptr %17, ptr %119, align 8, !tbaa !31
  %120 = getelementptr inbounds i8, ptr %0, i64 144
  store ptr %18, ptr %120, align 8, !tbaa !32
  %121 = getelementptr inbounds i8, ptr %0, i64 152
  store ptr %25, ptr %121, align 8, !tbaa !33
  %122 = getelementptr inbounds i8, ptr %0, i64 160
  store ptr null, ptr %122, align 8, !tbaa !34
  %123 = getelementptr inbounds i8, ptr %0, i64 168
  store ptr %19, ptr %123, align 8, !tbaa !35
  %124 = getelementptr inbounds i8, ptr %0, i64 176
  store ptr %20, ptr %124, align 8, !tbaa !36
  %125 = getelementptr inbounds i8, ptr %0, i64 184
  store ptr %21, ptr %125, align 8, !tbaa !37
  %126 = getelementptr inbounds i8, ptr %0, i64 192
  store ptr %22, ptr %126, align 8, !tbaa !38
  %127 = getelementptr inbounds i8, ptr %0, i64 200
  store ptr %23, ptr %127, align 8, !tbaa !39
  %128 = getelementptr inbounds i8, ptr %0, i64 208
  store ptr %24, ptr %128, align 8, !tbaa !40
  %129 = icmp sgt i32 %1, 0
  br i1 %129, label %153, label %130

130:                                              ; preds = %26
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %131 unwind label %140

131:                                              ; preds = %130
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #3
  %132 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.1)
          to label %133 unwind label %142

133:                                              ; preds = %131
  %134 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.2)
          to label %135 unwind label %142

135:                                              ; preds = %133
  %136 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %137 unwind label %.thread

137:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %138 unwind label %145

138:                                              ; preds = %137
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %136, ptr noundef nonnull %29, ptr noundef nonnull %30, i32 noundef 67)
          to label %139 unwind label %147

139:                                              ; preds = %138
  invoke void @__cxa_throw(ptr nonnull %136, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %147

140:                                              ; preds = %130
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #3
  br label %152

142:                                              ; preds = %133, %131
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %151

.thread:                                          ; preds = %135
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %150

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

147:                                              ; preds = %139, %138
  %.081 = phi i1 [ false, %139 ], [ true, %138 ]
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #3
  br label %149

149:                                              ; preds = %145, %147
  %.pn = phi { ptr, i32 } [ %148, %147 ], [ %146, %145 ]
  %.182 = phi i1 [ %.081, %147 ], [ true, %145 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #3
  br i1 %.182, label %150, label %151

150:                                              ; preds = %.thread, %149
  %.pn.pn238 = phi { ptr, i32 } [ %144, %.thread ], [ %.pn, %149 ]
  call void @__cxa_free_exception(ptr %136) #3
  br label %151

151:                                              ; preds = %149, %150, %142
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn238, %150 ], [ %.pn, %149 ], [ %143, %142 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #3
  br label %152

152:                                              ; preds = %151, %140
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %151 ], [ %141, %140 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #3
  br label %494

153:                                              ; preds = %26
  %154 = icmp sgt i32 %4, -1
  br i1 %154, label %178, label %155

155:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %156 unwind label %165

156:                                              ; preds = %155
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #3
  %157 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.1)
          to label %158 unwind label %167

158:                                              ; preds = %156
  %159 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.5)
          to label %160 unwind label %167

160:                                              ; preds = %158
  %161 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %162 unwind label %.thread239

162:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %163 unwind label %170

163:                                              ; preds = %162
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %161, ptr noundef nonnull %34, ptr noundef nonnull %35, i32 noundef 69)
          to label %164 unwind label %172

164:                                              ; preds = %163
  invoke void @__cxa_throw(ptr nonnull %161, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %172

165:                                              ; preds = %155
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #3
  br label %177

167:                                              ; preds = %158, %156
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %176

.thread239:                                       ; preds = %160
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %175

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

172:                                              ; preds = %164, %163
  %.078 = phi i1 [ false, %164 ], [ true, %163 ]
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #3
  br label %174

174:                                              ; preds = %170, %172
  %.pn154 = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ]
  %.179 = phi i1 [ %.078, %172 ], [ true, %170 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #3
  br i1 %.179, label %175, label %176

175:                                              ; preds = %.thread239, %174
  %.pn154.pn242 = phi { ptr, i32 } [ %169, %.thread239 ], [ %.pn154, %174 ]
  call void @__cxa_free_exception(ptr %161) #3
  br label %176

176:                                              ; preds = %174, %175, %167
  %.pn154.pn.pn = phi { ptr, i32 } [ %.pn154.pn242, %175 ], [ %.pn154, %174 ], [ %168, %167 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #3
  br label %177

177:                                              ; preds = %176, %165
  %.pn154.pn.pn.pn = phi { ptr, i32 } [ %.pn154.pn.pn, %176 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #3
  br label %494

178:                                              ; preds = %153
  %.not = icmp eq ptr %2, null
  br i1 %.not, label %179, label %202

179:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %180 unwind label %189

180:                                              ; preds = %179
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #3
  %181 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.1)
          to label %182 unwind label %191

182:                                              ; preds = %180
  %183 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.7)
          to label %184 unwind label %191

184:                                              ; preds = %182
  %185 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %186 unwind label %.thread243

186:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %187 unwind label %194

187:                                              ; preds = %186
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %185, ptr noundef nonnull %39, ptr noundef nonnull %40, i32 noundef 71)
          to label %188 unwind label %196

188:                                              ; preds = %187
  invoke void @__cxa_throw(ptr nonnull %185, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %196

189:                                              ; preds = %179
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #3
  br label %201

191:                                              ; preds = %182, %180
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %200

.thread243:                                       ; preds = %184
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %199

194:                                              ; preds = %186
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %198

196:                                              ; preds = %188, %187
  %.075 = phi i1 [ false, %188 ], [ true, %187 ]
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #3
  br label %198

198:                                              ; preds = %194, %196
  %.pn159 = phi { ptr, i32 } [ %197, %196 ], [ %195, %194 ]
  %.176 = phi i1 [ %.075, %196 ], [ true, %194 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #3
  br i1 %.176, label %199, label %200

199:                                              ; preds = %.thread243, %198
  %.pn159.pn246 = phi { ptr, i32 } [ %193, %.thread243 ], [ %.pn159, %198 ]
  call void @__cxa_free_exception(ptr %185) #3
  br label %200

200:                                              ; preds = %198, %199, %191
  %.pn159.pn.pn = phi { ptr, i32 } [ %.pn159.pn246, %199 ], [ %.pn159, %198 ], [ %192, %191 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #3
  br label %201

201:                                              ; preds = %200, %189
  %.pn159.pn.pn.pn = phi { ptr, i32 } [ %.pn159.pn.pn, %200 ], [ %190, %189 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #3
  br label %494

202:                                              ; preds = %178
  %.not164 = icmp eq ptr %3, null
  br i1 %.not164, label %203, label %226

203:                                              ; preds = %202
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %204 unwind label %213

204:                                              ; preds = %203
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #3
  %205 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.1)
          to label %206 unwind label %215

206:                                              ; preds = %204
  %207 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.9)
          to label %208 unwind label %215

208:                                              ; preds = %206
  %209 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %210 unwind label %.thread247

210:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %211 unwind label %218

211:                                              ; preds = %210
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %209, ptr noundef nonnull %44, ptr noundef nonnull %45, i32 noundef 73)
          to label %212 unwind label %220

212:                                              ; preds = %211
  invoke void @__cxa_throw(ptr nonnull %209, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %220

213:                                              ; preds = %203
  %214 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #3
  br label %225

215:                                              ; preds = %206, %204
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %224

.thread247:                                       ; preds = %208
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %223

218:                                              ; preds = %210
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %222

220:                                              ; preds = %212, %211
  %.072 = phi i1 [ false, %212 ], [ true, %211 ]
  %221 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #3
  br label %222

222:                                              ; preds = %218, %220
  %.pn165 = phi { ptr, i32 } [ %221, %220 ], [ %219, %218 ]
  %.173 = phi i1 [ %.072, %220 ], [ true, %218 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #3
  br i1 %.173, label %223, label %224

223:                                              ; preds = %.thread247, %222
  %.pn165.pn250 = phi { ptr, i32 } [ %217, %.thread247 ], [ %.pn165, %222 ]
  call void @__cxa_free_exception(ptr %209) #3
  br label %224

224:                                              ; preds = %222, %223, %215
  %.pn165.pn.pn = phi { ptr, i32 } [ %.pn165.pn250, %223 ], [ %.pn165, %222 ], [ %216, %215 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #3
  br label %225

225:                                              ; preds = %224, %213
  %.pn165.pn.pn.pn = phi { ptr, i32 } [ %.pn165.pn.pn, %224 ], [ %214, %213 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #3
  br label %494

226:                                              ; preds = %202
  %.not170 = icmp ne ptr %5, null
  %227 = icmp eq i32 %4, 0
  %or.cond = or i1 %227, %.not170
  br i1 %or.cond, label %251, label %228

228:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %229 unwind label %238

229:                                              ; preds = %228
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #3
  %230 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.1)
          to label %231 unwind label %240

231:                                              ; preds = %229
  %232 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.11)
          to label %233 unwind label %240

233:                                              ; preds = %231
  %234 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %235 unwind label %.thread251

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

236:                                              ; preds = %235
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %234, ptr noundef nonnull %49, ptr noundef nonnull %50, i32 noundef 75)
          to label %237 unwind label %245

237:                                              ; preds = %236
  invoke void @__cxa_throw(ptr nonnull %234, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %245

238:                                              ; preds = %228
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #3
  br label %250

240:                                              ; preds = %231, %229
  %241 = landingpad { ptr, i32 }
          cleanup
  br label %249

.thread251:                                       ; preds = %233
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %248

243:                                              ; preds = %235
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %247

245:                                              ; preds = %237, %236
  %.069 = phi i1 [ false, %237 ], [ true, %236 ]
  %246 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #3
  br label %247

247:                                              ; preds = %243, %245
  %.pn171 = phi { ptr, i32 } [ %246, %245 ], [ %244, %243 ]
  %.170 = phi i1 [ %.069, %245 ], [ true, %243 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #3
  br i1 %.170, label %248, label %249

248:                                              ; preds = %.thread251, %247
  %.pn171.pn254 = phi { ptr, i32 } [ %242, %.thread251 ], [ %.pn171, %247 ]
  call void @__cxa_free_exception(ptr %234) #3
  br label %249

249:                                              ; preds = %247, %248, %240
  %.pn171.pn.pn = phi { ptr, i32 } [ %.pn171.pn254, %248 ], [ %.pn171, %247 ], [ %241, %240 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #3
  br label %250

250:                                              ; preds = %249, %238
  %.pn171.pn.pn.pn = phi { ptr, i32 } [ %.pn171.pn.pn, %249 ], [ %239, %238 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #3
  br label %494

251:                                              ; preds = %226
  %.not176 = icmp ne ptr %6, null
  %or.cond235 = or i1 %227, %.not176
  br i1 %or.cond235, label %275, label %252

252:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %53) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %253 unwind label %262

253:                                              ; preds = %252
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #3
  %254 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.1)
          to label %255 unwind label %264

255:                                              ; preds = %253
  %256 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.13)
          to label %257 unwind label %264

257:                                              ; preds = %255
  %258 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %259 unwind label %.thread255

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

260:                                              ; preds = %259
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %258, ptr noundef nonnull %54, ptr noundef nonnull %55, i32 noundef 77)
          to label %261 unwind label %269

261:                                              ; preds = %260
  invoke void @__cxa_throw(ptr nonnull %258, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %269

262:                                              ; preds = %252
  %263 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #3
  br label %274

264:                                              ; preds = %255, %253
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %273

.thread255:                                       ; preds = %257
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %272

267:                                              ; preds = %259
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %271

269:                                              ; preds = %261, %260
  %.066 = phi i1 [ false, %261 ], [ true, %260 ]
  %270 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #3
  br label %271

271:                                              ; preds = %267, %269
  %.pn177 = phi { ptr, i32 } [ %270, %269 ], [ %268, %267 ]
  %.167 = phi i1 [ %.066, %269 ], [ true, %267 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #3
  br i1 %.167, label %272, label %273

272:                                              ; preds = %.thread255, %271
  %.pn177.pn258 = phi { ptr, i32 } [ %266, %.thread255 ], [ %.pn177, %271 ]
  call void @__cxa_free_exception(ptr %258) #3
  br label %273

273:                                              ; preds = %271, %272, %264
  %.pn177.pn.pn = phi { ptr, i32 } [ %.pn177.pn258, %272 ], [ %.pn177, %271 ], [ %265, %264 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #3
  br label %274

274:                                              ; preds = %273, %262
  %.pn177.pn.pn.pn = phi { ptr, i32 } [ %.pn177.pn.pn, %273 ], [ %263, %262 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #3
  br label %494

275:                                              ; preds = %251
  %276 = icmp sgt i32 %7, -1
  br i1 %276, label %300, label %277

277:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %278 unwind label %287

278:                                              ; preds = %277
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #3
  %279 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.1)
          to label %280 unwind label %289

280:                                              ; preds = %278
  %281 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.15)
          to label %282 unwind label %289

282:                                              ; preds = %280
  %283 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %284 unwind label %.thread259

284:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %285 unwind label %292

285:                                              ; preds = %284
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %283, ptr noundef nonnull %59, ptr noundef nonnull %60, i32 noundef 79)
          to label %286 unwind label %294

286:                                              ; preds = %285
  invoke void @__cxa_throw(ptr nonnull %283, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %294

287:                                              ; preds = %277
  %288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #3
  br label %299

289:                                              ; preds = %280, %278
  %290 = landingpad { ptr, i32 }
          cleanup
  br label %298

.thread259:                                       ; preds = %282
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %297

292:                                              ; preds = %284
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %296

294:                                              ; preds = %286, %285
  %.063 = phi i1 [ false, %286 ], [ true, %285 ]
  %295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #3
  br label %296

296:                                              ; preds = %292, %294
  %.pn182 = phi { ptr, i32 } [ %295, %294 ], [ %293, %292 ]
  %.164 = phi i1 [ %.063, %294 ], [ true, %292 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #3
  br i1 %.164, label %297, label %298

297:                                              ; preds = %.thread259, %296
  %.pn182.pn262 = phi { ptr, i32 } [ %291, %.thread259 ], [ %.pn182, %296 ]
  call void @__cxa_free_exception(ptr %283) #3
  br label %298

298:                                              ; preds = %296, %297, %289
  %.pn182.pn.pn = phi { ptr, i32 } [ %.pn182.pn262, %297 ], [ %.pn182, %296 ], [ %290, %289 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #3
  br label %299

299:                                              ; preds = %298, %287
  %.pn182.pn.pn.pn = phi { ptr, i32 } [ %.pn182.pn.pn, %298 ], [ %288, %287 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #3
  br label %494

300:                                              ; preds = %275
  %301 = icmp sgt i32 %8, -1
  br i1 %301, label %325, label %302

302:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %303 unwind label %312

303:                                              ; preds = %302
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #3
  %304 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.1)
          to label %305 unwind label %314

305:                                              ; preds = %303
  %306 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.17)
          to label %307 unwind label %314

307:                                              ; preds = %305
  %308 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %309 unwind label %.thread263

309:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %66) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %310 unwind label %317

310:                                              ; preds = %309
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %308, ptr noundef nonnull %64, ptr noundef nonnull %65, i32 noundef 81)
          to label %311 unwind label %319

311:                                              ; preds = %310
  invoke void @__cxa_throw(ptr nonnull %308, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %319

312:                                              ; preds = %302
  %313 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #3
  br label %324

314:                                              ; preds = %305, %303
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %323

.thread263:                                       ; preds = %307
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %322

317:                                              ; preds = %309
  %318 = landingpad { ptr, i32 }
          cleanup
  br label %321

319:                                              ; preds = %311, %310
  %.060 = phi i1 [ false, %311 ], [ true, %310 ]
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #3
  br label %321

321:                                              ; preds = %317, %319
  %.pn187 = phi { ptr, i32 } [ %320, %319 ], [ %318, %317 ]
  %.161 = phi i1 [ %.060, %319 ], [ true, %317 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #3
  br i1 %.161, label %322, label %323

322:                                              ; preds = %.thread263, %321
  %.pn187.pn266 = phi { ptr, i32 } [ %316, %.thread263 ], [ %.pn187, %321 ]
  call void @__cxa_free_exception(ptr %308) #3
  br label %323

323:                                              ; preds = %321, %322, %314
  %.pn187.pn.pn = phi { ptr, i32 } [ %.pn187.pn266, %322 ], [ %.pn187, %321 ], [ %315, %314 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #3
  br label %324

324:                                              ; preds = %323, %312
  %.pn187.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn, %323 ], [ %313, %312 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #3
  br label %494

325:                                              ; preds = %300
  %switch = icmp ult i32 %9, 2
  br i1 %switch, label %349, label %326

326:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %327 unwind label %336

327:                                              ; preds = %326
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #3
  %328 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.1)
          to label %329 unwind label %338

329:                                              ; preds = %327
  %330 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.19)
          to label %331 unwind label %338

331:                                              ; preds = %329
  %332 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %333 unwind label %.thread267

333:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %334 unwind label %341

334:                                              ; preds = %333
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %332, ptr noundef nonnull %69, ptr noundef nonnull %70, i32 noundef 83)
          to label %335 unwind label %343

335:                                              ; preds = %334
  invoke void @__cxa_throw(ptr nonnull %332, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %343

336:                                              ; preds = %326
  %337 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #3
  br label %348

338:                                              ; preds = %329, %327
  %339 = landingpad { ptr, i32 }
          cleanup
  br label %347

.thread267:                                       ; preds = %331
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %346

341:                                              ; preds = %333
  %342 = landingpad { ptr, i32 }
          cleanup
  br label %345

343:                                              ; preds = %335, %334
  %.057 = phi i1 [ false, %335 ], [ true, %334 ]
  %344 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #3
  br label %345

345:                                              ; preds = %341, %343
  %.pn192 = phi { ptr, i32 } [ %344, %343 ], [ %342, %341 ]
  %.158 = phi i1 [ %.057, %343 ], [ true, %341 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #3
  br i1 %.158, label %346, label %347

346:                                              ; preds = %.thread267, %345
  %.pn192.pn270 = phi { ptr, i32 } [ %340, %.thread267 ], [ %.pn192, %345 ]
  call void @__cxa_free_exception(ptr %332) #3
  br label %347

347:                                              ; preds = %345, %346, %338
  %.pn192.pn.pn = phi { ptr, i32 } [ %.pn192.pn270, %346 ], [ %.pn192, %345 ], [ %339, %338 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #3
  br label %348

348:                                              ; preds = %347, %336
  %.pn192.pn.pn.pn = phi { ptr, i32 } [ %.pn192.pn.pn, %347 ], [ %337, %336 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #3
  br label %494

349:                                              ; preds = %325
  %.not197 = icmp eq ptr %10, null
  br i1 %.not197, label %350, label %373

350:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %351 unwind label %360

351:                                              ; preds = %350
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #3
  %352 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.1)
          to label %353 unwind label %362

353:                                              ; preds = %351
  %354 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.21)
          to label %355 unwind label %362

355:                                              ; preds = %353
  %356 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %72)
          to label %357 unwind label %.thread271

357:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %358 unwind label %365

358:                                              ; preds = %357
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %356, ptr noundef nonnull %74, ptr noundef nonnull %75, i32 noundef 85)
          to label %359 unwind label %367

359:                                              ; preds = %358
  invoke void @__cxa_throw(ptr nonnull %356, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %367

360:                                              ; preds = %350
  %361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #3
  br label %372

362:                                              ; preds = %353, %351
  %363 = landingpad { ptr, i32 }
          cleanup
  br label %371

.thread271:                                       ; preds = %355
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %370

365:                                              ; preds = %357
  %366 = landingpad { ptr, i32 }
          cleanup
  br label %369

367:                                              ; preds = %359, %358
  %.054 = phi i1 [ false, %359 ], [ true, %358 ]
  %368 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #3
  br label %369

369:                                              ; preds = %365, %367
  %.pn198 = phi { ptr, i32 } [ %368, %367 ], [ %366, %365 ]
  %.155 = phi i1 [ %.054, %367 ], [ true, %365 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #3
  br i1 %.155, label %370, label %371

370:                                              ; preds = %.thread271, %369
  %.pn198.pn274 = phi { ptr, i32 } [ %364, %.thread271 ], [ %.pn198, %369 ]
  call void @__cxa_free_exception(ptr %356) #3
  br label %371

371:                                              ; preds = %369, %370, %362
  %.pn198.pn.pn = phi { ptr, i32 } [ %.pn198.pn274, %370 ], [ %.pn198, %369 ], [ %363, %362 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #3
  br label %372

372:                                              ; preds = %371, %360
  %.pn198.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn, %371 ], [ %361, %360 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #3
  br label %494

373:                                              ; preds = %349
  %.not203 = icmp eq ptr %14, null
  br i1 %.not203, label %374, label %397

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

375:                                              ; preds = %374
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #3
  %376 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull @.str.1)
          to label %377 unwind label %386

377:                                              ; preds = %375
  %378 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull @.str.23)
          to label %379 unwind label %386

379:                                              ; preds = %377
  %380 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %381 unwind label %.thread275

381:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %81) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %382 unwind label %389

382:                                              ; preds = %381
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %380, ptr noundef nonnull %79, ptr noundef nonnull %80, i32 noundef 87)
          to label %383 unwind label %391

383:                                              ; preds = %382
  invoke void @__cxa_throw(ptr nonnull %380, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %391

384:                                              ; preds = %374
  %385 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #3
  br label %396

386:                                              ; preds = %377, %375
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %395

.thread275:                                       ; preds = %379
  %388 = landingpad { ptr, i32 }
          cleanup
  br label %394

389:                                              ; preds = %381
  %390 = landingpad { ptr, i32 }
          cleanup
  br label %393

391:                                              ; preds = %383, %382
  %.051 = phi i1 [ false, %383 ], [ true, %382 ]
  %392 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #3
  br label %393

393:                                              ; preds = %389, %391
  %.pn204 = phi { ptr, i32 } [ %392, %391 ], [ %390, %389 ]
  %.152 = phi i1 [ %.051, %391 ], [ true, %389 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #3
  br i1 %.152, label %394, label %395

394:                                              ; preds = %.thread275, %393
  %.pn204.pn278 = phi { ptr, i32 } [ %388, %.thread275 ], [ %.pn204, %393 ]
  call void @__cxa_free_exception(ptr %380) #3
  br label %395

395:                                              ; preds = %393, %394, %386
  %.pn204.pn.pn = phi { ptr, i32 } [ %.pn204.pn278, %394 ], [ %.pn204, %393 ], [ %387, %386 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #3
  br label %396

396:                                              ; preds = %395, %384
  %.pn204.pn.pn.pn = phi { ptr, i32 } [ %.pn204.pn.pn, %395 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #3
  br label %494

397:                                              ; preds = %373
  %.not209 = icmp eq ptr %15, null
  br i1 %.not209, label %398, label %421

398:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %83) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %399 unwind label %408

399:                                              ; preds = %398
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %83) #3
  %400 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @.str.1)
          to label %401 unwind label %410

401:                                              ; preds = %399
  %402 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @.str.25)
          to label %403 unwind label %410

403:                                              ; preds = %401
  %404 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %405 unwind label %.thread279

405:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %406 unwind label %413

406:                                              ; preds = %405
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %404, ptr noundef nonnull %84, ptr noundef nonnull %85, i32 noundef 89)
          to label %407 unwind label %415

407:                                              ; preds = %406
  invoke void @__cxa_throw(ptr nonnull %404, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %415

408:                                              ; preds = %398
  %409 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %83) #3
  br label %420

410:                                              ; preds = %401, %399
  %411 = landingpad { ptr, i32 }
          cleanup
  br label %419

.thread279:                                       ; preds = %403
  %412 = landingpad { ptr, i32 }
          cleanup
  br label %418

413:                                              ; preds = %405
  %414 = landingpad { ptr, i32 }
          cleanup
  br label %417

415:                                              ; preds = %407, %406
  %.048 = phi i1 [ false, %407 ], [ true, %406 ]
  %416 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #3
  br label %417

417:                                              ; preds = %413, %415
  %.pn210 = phi { ptr, i32 } [ %416, %415 ], [ %414, %413 ]
  %.149 = phi i1 [ %.048, %415 ], [ true, %413 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #3
  br i1 %.149, label %418, label %419

418:                                              ; preds = %.thread279, %417
  %.pn210.pn282 = phi { ptr, i32 } [ %412, %.thread279 ], [ %.pn210, %417 ]
  call void @__cxa_free_exception(ptr %404) #3
  br label %419

419:                                              ; preds = %417, %418, %410
  %.pn210.pn.pn = phi { ptr, i32 } [ %.pn210.pn282, %418 ], [ %.pn210, %417 ], [ %411, %410 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #3
  br label %420

420:                                              ; preds = %419, %408
  %.pn210.pn.pn.pn = phi { ptr, i32 } [ %.pn210.pn.pn, %419 ], [ %409, %408 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #3
  br label %494

421:                                              ; preds = %397
  %.not215 = icmp eq ptr %16, null
  br i1 %.not215, label %422, label %445

422:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %88) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %423 unwind label %432

423:                                              ; preds = %422
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #3
  %424 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.1)
          to label %425 unwind label %434

425:                                              ; preds = %423
  %426 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.27)
          to label %427 unwind label %434

427:                                              ; preds = %425
  %428 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %429 unwind label %.thread283

429:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %91) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %430 unwind label %437

430:                                              ; preds = %429
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %428, ptr noundef nonnull %89, ptr noundef nonnull %90, i32 noundef 91)
          to label %431 unwind label %439

431:                                              ; preds = %430
  invoke void @__cxa_throw(ptr nonnull %428, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %439

432:                                              ; preds = %422
  %433 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #3
  br label %444

434:                                              ; preds = %425, %423
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %443

.thread283:                                       ; preds = %427
  %436 = landingpad { ptr, i32 }
          cleanup
  br label %442

437:                                              ; preds = %429
  %438 = landingpad { ptr, i32 }
          cleanup
  br label %441

439:                                              ; preds = %431, %430
  %.045 = phi i1 [ false, %431 ], [ true, %430 ]
  %440 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #3
  br label %441

441:                                              ; preds = %437, %439
  %.pn216 = phi { ptr, i32 } [ %440, %439 ], [ %438, %437 ]
  %.146 = phi i1 [ %.045, %439 ], [ true, %437 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #3
  br i1 %.146, label %442, label %443

442:                                              ; preds = %.thread283, %441
  %.pn216.pn286 = phi { ptr, i32 } [ %436, %.thread283 ], [ %.pn216, %441 ]
  call void @__cxa_free_exception(ptr %428) #3
  br label %443

443:                                              ; preds = %441, %442, %434
  %.pn216.pn.pn = phi { ptr, i32 } [ %.pn216.pn286, %442 ], [ %.pn216, %441 ], [ %435, %434 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #3
  br label %444

444:                                              ; preds = %443, %432
  %.pn216.pn.pn.pn = phi { ptr, i32 } [ %.pn216.pn.pn, %443 ], [ %433, %432 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #3
  br label %494

445:                                              ; preds = %421
  %.not221 = icmp eq ptr %17, null
  br i1 %.not221, label %446, label %469

446:                                              ; preds = %445
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %93) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %447 unwind label %456

447:                                              ; preds = %446
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #3
  %448 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str.1)
          to label %449 unwind label %458

449:                                              ; preds = %447
  %450 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str.29)
          to label %451 unwind label %458

451:                                              ; preds = %449
  %452 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %453 unwind label %.thread287

453:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %454 unwind label %461

454:                                              ; preds = %453
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %452, ptr noundef nonnull %94, ptr noundef nonnull %95, i32 noundef 93)
          to label %455 unwind label %463

455:                                              ; preds = %454
  invoke void @__cxa_throw(ptr nonnull %452, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %463

456:                                              ; preds = %446
  %457 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #3
  br label %468

458:                                              ; preds = %449, %447
  %459 = landingpad { ptr, i32 }
          cleanup
  br label %467

.thread287:                                       ; preds = %451
  %460 = landingpad { ptr, i32 }
          cleanup
  br label %466

461:                                              ; preds = %453
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %465

463:                                              ; preds = %455, %454
  %.042 = phi i1 [ false, %455 ], [ true, %454 ]
  %464 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #3
  br label %465

465:                                              ; preds = %461, %463
  %.pn222 = phi { ptr, i32 } [ %464, %463 ], [ %462, %461 ]
  %.143 = phi i1 [ %.042, %463 ], [ true, %461 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #3
  br i1 %.143, label %466, label %467

466:                                              ; preds = %.thread287, %465
  %.pn222.pn290 = phi { ptr, i32 } [ %460, %.thread287 ], [ %.pn222, %465 ]
  call void @__cxa_free_exception(ptr %452) #3
  br label %467

467:                                              ; preds = %465, %466, %458
  %.pn222.pn.pn = phi { ptr, i32 } [ %.pn222.pn290, %466 ], [ %.pn222, %465 ], [ %459, %458 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #3
  br label %468

468:                                              ; preds = %467, %456
  %.pn222.pn.pn.pn = phi { ptr, i32 } [ %.pn222.pn.pn, %467 ], [ %457, %456 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #3
  br label %494

469:                                              ; preds = %445
  %.not227 = icmp eq ptr %18, null
  br i1 %.not227, label %470, label %493

470:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %98) #3
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %471 unwind label %480

471:                                              ; preds = %470
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #3
  %472 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull @.str.1)
          to label %473 unwind label %482

473:                                              ; preds = %471
  %474 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull @.str.31)
          to label %475 unwind label %482

475:                                              ; preds = %473
  %476 = call ptr @__cxa_allocate_exception(i64 112) #3
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %477 unwind label %.thread291

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

478:                                              ; preds = %477
  invoke void @_ZN10SimTKIpopt24INVALID_STDINTERFACE_NLPC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_i(ptr noundef nonnull align 8 dereferenceable(112) %476, ptr noundef nonnull %99, ptr noundef nonnull %100, i32 noundef 95)
          to label %479 unwind label %487

479:                                              ; preds = %478
  invoke void @__cxa_throw(ptr nonnull %476, ptr nonnull @_ZTIN10SimTKIpopt24INVALID_STDINTERFACE_NLPE, ptr nonnull @_ZN10SimTKIpopt14IpoptExceptionD2Ev) #4
          to label %495 unwind label %487

480:                                              ; preds = %470
  %481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #3
  br label %492

482:                                              ; preds = %473, %471
  %483 = landingpad { ptr, i32 }
          cleanup
  br label %491

.thread291:                                       ; preds = %475
  %484 = landingpad { ptr, i32 }
          cleanup
  br label %490

485:                                              ; preds = %477
  %486 = landingpad { ptr, i32 }
          cleanup
  br label %489

487:                                              ; preds = %479, %478
  %.0 = phi i1 [ false, %479 ], [ true, %478 ]
  %488 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #3
  br label %489

489:                                              ; preds = %485, %487
  %.pn228 = phi { ptr, i32 } [ %488, %487 ], [ %486, %485 ]
  %.1 = phi i1 [ %.0, %487 ], [ true, %485 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %101) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #3
  br i1 %.1, label %490, label %491

490:                                              ; preds = %.thread291, %489
  %.pn228.pn294 = phi { ptr, i32 } [ %484, %.thread291 ], [ %.pn228, %489 ]
  call void @__cxa_free_exception(ptr %476) #3
  br label %491

491:                                              ; preds = %489, %490, %482
  %.pn228.pn.pn = phi { ptr, i32 } [ %.pn228.pn294, %490 ], [ %.pn228, %489 ], [ %483, %482 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #3
  br label %492

492:                                              ; preds = %491, %480
  %.pn228.pn.pn.pn = phi { ptr, i32 } [ %.pn228.pn.pn, %491 ], [ %481, %480 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #3
  br label %494

493:                                              ; preds = %469
  ret void

494:                                              ; preds = %492, %468, %444, %420, %396, %372, %348, %324, %299, %274, %250, %225, %201, %177, %152
  %.pn228.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn228.pn.pn.pn, %492 ], [ %.pn222.pn.pn.pn, %468 ], [ %.pn216.pn.pn.pn, %444 ], [ %.pn210.pn.pn.pn, %420 ], [ %.pn204.pn.pn.pn, %396 ], [ %.pn198.pn.pn.pn, %372 ], [ %.pn192.pn.pn.pn, %348 ], [ %.pn187.pn.pn.pn, %324 ], [ %.pn182.pn.pn.pn, %299 ], [ %.pn177.pn.pn.pn, %274 ], [ %.pn171.pn.pn.pn, %250 ], [ %.pn165.pn.pn.pn, %225 ], [ %.pn159.pn.pn.pn, %201 ], [ %.pn154.pn.pn.pn, %177 ], [ %.pn.pn.pn.pn, %152 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_10JournalistEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #3
  call void @_ZN10SimTKIpopt16ReferencedObjectD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %0) #3
  resume { ptr, i32 } %.pn228.pn.pn.pn.pn

495:                                              ; preds = %479, %455, %431, %407, %383, %359, %335, %311, %286, %261, %237, %212, %188, %164, %139
  unreachable
}

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !12, i64 24}
!9 = !{!"_ZTSN10SimTKIpopt16StdInterfaceTNLPE", !10, i64 0, !14, i64 16, !12, i64 24, !12, i64 28, !15, i64 32, !15, i64 40, !15, i64 48, !15, i64 56, !12, i64 64, !12, i64 68, !12, i64 72, !15, i64 80, !15, i64 88, !15, i64 96, !15, i64 104, !15, i64 112, !15, i64 120, !15, i64 128, !15, i64 136, !15, i64 144, !15, i64 152, !15, i64 160, !15, i64 168, !15, i64 176, !15, i64 184, !15, i64 192, !15, i64 200, !15, i64 208}
!10 = !{!"_ZTSN10SimTKIpopt4TNLPE", !11, i64 0}
!11 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !12, i64 8}
!12 = !{!"int", !13, i64 0}
!13 = !{!"omnipotent char", !7, i64 0}
!14 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !15, i64 0}
!15 = !{!"any pointer", !13, i64 0}
!16 = !{!9, !12, i64 28}
!17 = !{!9, !15, i64 32}
!18 = !{!9, !15, i64 40}
!19 = !{!9, !15, i64 48}
!20 = !{!9, !15, i64 56}
!21 = !{!9, !12, i64 64}
!22 = !{!9, !12, i64 68}
!23 = !{!9, !12, i64 72}
!24 = !{!9, !15, i64 80}
!25 = !{!9, !15, i64 88}
!26 = !{!9, !15, i64 96}
!27 = !{!9, !15, i64 104}
!28 = !{!9, !15, i64 112}
!29 = !{!9, !15, i64 120}
!30 = !{!9, !15, i64 128}
!31 = !{!9, !15, i64 136}
!32 = !{!9, !15, i64 144}
!33 = !{!9, !15, i64 152}
!34 = !{!9, !15, i64 160}
!35 = !{!9, !15, i64 168}
!36 = !{!9, !15, i64 176}
!37 = !{!9, !15, i64 184}
!38 = !{!9, !15, i64 192}
!39 = !{!9, !15, i64 200}
!40 = !{!9, !15, i64 208}


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