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

; 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.22" = type { i8 }
%"class.SimTKIpopt::AdaptiveMuUpdate" = type { %"class.SimTKIpopt::MuUpdate.base", double, double, double, i8, double, double, double, double, double, double, i32, i32, i32, i32, double, double, double, %"class.SimTKIpopt::SmartPtr.10", %"class.SimTKIpopt::SmartPtr.11", %"class.SimTKIpopt::SmartPtr.11", double, double, i32, %"class.std::__cxx11::list", double, %"class.SimTKIpopt::Filter", i8, i8, i8, %"class.SimTKIpopt::SmartPtr.20" }
%"class.SimTKIpopt::MuUpdate.base" = type { %"class.SimTKIpopt::AlgorithmStrategyObject.base" }
%"class.SimTKIpopt::AlgorithmStrategyObject.base" = type <{ %"class.SimTKIpopt::ReferencedObject.base", [4 x i8], %"class.SimTKIpopt::SmartPtr.6", %"class.SimTKIpopt::SmartPtr.7", %"class.SimTKIpopt::SmartPtr.8", %"class.SimTKIpopt::SmartPtr.9", i8 }>
%"class.SimTKIpopt::ReferencedObject.base" = type <{ ptr, i32 }>
%"class.SimTKIpopt::SmartPtr.6" = type { ptr }
%"class.SimTKIpopt::SmartPtr.7" = type { ptr }
%"class.SimTKIpopt::SmartPtr.8" = type { ptr }
%"class.SimTKIpopt::SmartPtr.9" = type { ptr }
%"class.SimTKIpopt::SmartPtr.10" = type { ptr }
%"class.SimTKIpopt::SmartPtr.11" = type { ptr }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<double, std::allocator<double>>::_List_impl" }
%"struct.std::__cxx11::_List_base<double, std::allocator<double>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.SimTKIpopt::Filter" = type { i32, %"class.std::__cxx11::list.15" }
%"class.std::__cxx11::list.15" = type { %"class.std::__cxx11::_List_base.16" }
%"class.std::__cxx11::_List_base.16" = type { %"struct.std::__cxx11::_List_base<SimTKIpopt::FilterEntry *, std::allocator<SimTKIpopt::FilterEntry *>>::_List_impl" }
%"struct.std::__cxx11::_List_base<SimTKIpopt::FilterEntry *, std::allocator<SimTKIpopt::FilterEntry *>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"class.SimTKIpopt::SmartPtr.20" = type { ptr }

@.str = external hidden unnamed_addr constant [12 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [14 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN10SimTKIpopt16AdaptiveMuUpdate14InitializeImplERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(304) %0, ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %2) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i1, align 1
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.22", align 1
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator.22", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.22", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.22", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.22", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.22", align 1
  %22 = alloca i32, align 4
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.22", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.22", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.22", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.22", align 1
  %31 = alloca i8, align 1
  %32 = alloca i32, align 4
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.22", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.22", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.22", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.22", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.22", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.22", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator.22", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.22", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.22", align 1
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  %51 = load ptr, ptr %5, align 8
  %52 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %53 unwind label %67

53:                                               ; preds = %3
  %54 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 1
  %55 = load ptr, ptr %7, align 8, !tbaa !5
  %56 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %52, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %57 unwind label %71

57:                                               ; preds = %53
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #4
  %58 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %59 unwind label %76

59:                                               ; preds = %57
  %60 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 2
  %61 = load ptr, ptr %7, align 8, !tbaa !5
  %62 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %58, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %63 unwind label %80

63:                                               ; preds = %59
  %64 = xor i1 %62, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #4
  br i1 %64, label %65, label %85

65:                                               ; preds = %63
  %66 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 2
  store double -1.000000e+00, ptr %66, align 8, !tbaa !9
  br label %85

67:                                               ; preds = %3
  %68 = landingpad { ptr, i32 }
          cleanup
  %69 = extractvalue { ptr, i32 } %68, 0
  store ptr %69, ptr %10, align 8
  %70 = extractvalue { ptr, i32 } %68, 1
  store i32 %70, ptr %11, align 4
  br label %75

71:                                               ; preds = %53
  %72 = landingpad { ptr, i32 }
          cleanup
  %73 = extractvalue { ptr, i32 } %72, 0
  store ptr %73, ptr %10, align 8
  %74 = extractvalue { ptr, i32 } %72, 1
  store i32 %74, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #4
  br label %75

75:                                               ; preds = %71, %67
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #4
  br label %404

76:                                               ; preds = %57
  %77 = landingpad { ptr, i32 }
          cleanup
  %78 = extractvalue { ptr, i32 } %77, 0
  store ptr %78, ptr %10, align 8
  %79 = extractvalue { ptr, i32 } %77, 1
  store i32 %79, ptr %11, align 4
  br label %84

80:                                               ; preds = %59
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %10, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #4
  br label %84

84:                                               ; preds = %80, %76
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #4
  br label %404

85:                                               ; preds = %65, %63
  %86 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %87 unwind label %150

87:                                               ; preds = %85
  %88 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 5
  %89 = load ptr, ptr %7, align 8, !tbaa !5
  %90 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %86, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %91 unwind label %154

91:                                               ; preds = %87
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #4
  %92 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %93 unwind label %159

93:                                               ; preds = %91
  %94 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 6
  %95 = load ptr, ptr %7, align 8, !tbaa !5
  %96 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %92, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %97 unwind label %163

97:                                               ; preds = %93
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #4
  %98 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %99 unwind label %168

99:                                               ; preds = %97
  %100 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 25
  %101 = load ptr, ptr %7, align 8, !tbaa !5
  %102 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %98, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %103 unwind label %172

103:                                              ; preds = %99
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #4
  %104 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %105 unwind label %177

105:                                              ; preds = %103
  %106 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 23
  %107 = load ptr, ptr %7, align 8, !tbaa !5
  %108 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetIntegerValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %104, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 4 dereferenceable(4) %106, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %109 unwind label %181

109:                                              ; preds = %105
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  %110 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %111 unwind label %186

111:                                              ; preds = %109
  %112 = load ptr, ptr %7, align 8, !tbaa !5
  %113 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %110, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %114 unwind label %190

114:                                              ; preds = %111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #4
  %115 = load i32, ptr %22, align 4, !tbaa !38
  %116 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 14
  store i32 %115, ptr %116, align 4, !tbaa !39
  %117 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %118 unwind label %195

118:                                              ; preds = %114
  %119 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 15
  %120 = load ptr, ptr %7, align 8, !tbaa !5
  %121 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %117, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(32) %120)
          to label %122 unwind label %199

122:                                              ; preds = %118
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #4
  %123 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %124 unwind label %204

124:                                              ; preds = %122
  %125 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 16
  %126 = load ptr, ptr %7, align 8, !tbaa !5
  %127 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %123, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %128 unwind label %208

128:                                              ; preds = %124
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #4
  %129 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %130 unwind label %213

130:                                              ; preds = %128
  %131 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 27
  %132 = load ptr, ptr %7, align 8, !tbaa !5
  %133 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetBoolValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbS8_(ptr noundef nonnull align 8 dereferenceable(112) %129, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 1 dereferenceable(1) %131, ptr noundef nonnull align 8 dereferenceable(32) %132)
          to label %134 unwind label %217

134:                                              ; preds = %130
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #4
  %135 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 19
  %136 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_8MuOracleEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %135)
  %137 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  %138 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  %139 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  %140 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  %141 = load ptr, ptr %6, align 8, !tbaa !5
  %142 = load ptr, ptr %7, align 8, !tbaa !5
  %143 = call noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49) %136, ptr noundef nonnull align 8 dereferenceable(40) %137, ptr noundef nonnull align 8 dereferenceable(24) %138, ptr noundef nonnull align 8 dereferenceable(864) %139, ptr noundef nonnull align 8 dereferenceable(2025) %140, ptr noundef nonnull align 8 dereferenceable(112) %141, ptr noundef nonnull align 8 dereferenceable(32) %142)
  %144 = zext i1 %143 to i8
  store i8 %144, ptr %31, align 1, !tbaa !40
  %145 = load i8, ptr %31, align 1, !tbaa !40, !range !41, !noundef !42
  %146 = trunc i8 %145 to i1
  br i1 %146, label %222, label %147

147:                                              ; preds = %134
  %148 = load i8, ptr %31, align 1, !tbaa !40, !range !41, !noundef !42
  %149 = trunc i8 %148 to i1
  store i1 %149, ptr %4, align 1
  store i32 1, ptr %32, align 4
  br label %400

150:                                              ; preds = %85
  %151 = landingpad { ptr, i32 }
          cleanup
  %152 = extractvalue { ptr, i32 } %151, 0
  store ptr %152, ptr %10, align 8
  %153 = extractvalue { ptr, i32 } %151, 1
  store i32 %153, ptr %11, align 4
  br label %158

154:                                              ; preds = %87
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %10, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  br label %158

158:                                              ; preds = %154, %150
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #4
  br label %404

159:                                              ; preds = %91
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %10, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %11, align 4
  br label %167

163:                                              ; preds = %93
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %10, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #4
  br label %167

167:                                              ; preds = %163, %159
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #4
  br label %404

168:                                              ; preds = %97
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %10, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %11, align 4
  br label %176

172:                                              ; preds = %99
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %10, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #4
  br label %176

176:                                              ; preds = %172, %168
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #4
  br label %404

177:                                              ; preds = %103
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %10, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %11, align 4
  br label %185

181:                                              ; preds = %105
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %10, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  br label %185

185:                                              ; preds = %181, %177
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #4
  br label %404

186:                                              ; preds = %109
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %10, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %11, align 4
  br label %194

190:                                              ; preds = %111
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %10, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  br label %194

194:                                              ; preds = %190, %186
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #4
  br label %403

195:                                              ; preds = %114
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %10, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %11, align 4
  br label %203

199:                                              ; preds = %118
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %10, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  br label %203

203:                                              ; preds = %199, %195
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #4
  br label %403

204:                                              ; preds = %122
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %10, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %11, align 4
  br label %212

208:                                              ; preds = %124
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %10, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  br label %212

212:                                              ; preds = %208, %204
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #4
  br label %403

213:                                              ; preds = %128
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %10, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %11, align 4
  br label %221

217:                                              ; preds = %130
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %10, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  br label %221

221:                                              ; preds = %217, %213
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #4
  br label %403

222:                                              ; preds = %134
  %223 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 20
  %224 = call noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_8MuOracleEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %223)
  br i1 %224, label %225, label %242

225:                                              ; preds = %222
  %226 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 20
  %227 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_8MuOracleEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %226)
  %228 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  %229 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  %230 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  %231 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  %232 = load ptr, ptr %6, align 8, !tbaa !5
  %233 = load ptr, ptr %7, align 8, !tbaa !5
  %234 = call noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49) %227, ptr noundef nonnull align 8 dereferenceable(40) %228, ptr noundef nonnull align 8 dereferenceable(24) %229, ptr noundef nonnull align 8 dereferenceable(864) %230, ptr noundef nonnull align 8 dereferenceable(2025) %231, ptr noundef nonnull align 8 dereferenceable(112) %232, ptr noundef nonnull align 8 dereferenceable(32) %233)
  %235 = zext i1 %234 to i8
  store i8 %235, ptr %31, align 1, !tbaa !40
  %236 = load i8, ptr %31, align 1, !tbaa !40, !range !41, !noundef !42
  %237 = trunc i8 %236 to i1
  br i1 %237, label %241, label %238

238:                                              ; preds = %225
  %239 = load i8, ptr %31, align 1, !tbaa !40, !range !41, !noundef !42
  %240 = trunc i8 %239 to i1
  store i1 %240, ptr %4, align 1
  store i32 1, ptr %32, align 4
  br label %400

241:                                              ; preds = %225
  br label %242

242:                                              ; preds = %241, %222
  %243 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %244 unwind label %303

244:                                              ; preds = %242
  %245 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 7
  %246 = load ptr, ptr %7, align 8, !tbaa !5
  %247 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %243, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef nonnull align 8 dereferenceable(32) %246)
          to label %248 unwind label %307

248:                                              ; preds = %244
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #4
  %249 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %250 unwind label %312

250:                                              ; preds = %248
  %251 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 8
  %252 = load ptr, ptr %7, align 8, !tbaa !5
  %253 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %249, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(8) %251, ptr noundef nonnull align 8 dereferenceable(32) %252)
          to label %254 unwind label %316

254:                                              ; preds = %250
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #4
  %255 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %256 unwind label %321

256:                                              ; preds = %254
  %257 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 9
  %258 = load ptr, ptr %7, align 8, !tbaa !5
  %259 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %255, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef nonnull align 8 dereferenceable(32) %258)
          to label %260 unwind label %325

260:                                              ; preds = %256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #4
  %261 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %262 unwind label %330

262:                                              ; preds = %260
  %263 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 10
  %264 = load ptr, ptr %7, align 8, !tbaa !5
  %265 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %261, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef nonnull align 8 dereferenceable(32) %264)
          to label %266 unwind label %334

266:                                              ; preds = %262
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #4
  %267 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.57, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %268 unwind label %339

268:                                              ; preds = %266
  %269 = load ptr, ptr %7, align 8, !tbaa !5
  %270 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %267, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 8 dereferenceable(32) %269)
          to label %271 unwind label %343

271:                                              ; preds = %268
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #4
  %272 = load i32, ptr %22, align 4, !tbaa !38
  %273 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 11
  store i32 %272, ptr %273, align 8, !tbaa !43
  %274 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %275 unwind label %348

275:                                              ; preds = %271
  %276 = load ptr, ptr %7, align 8, !tbaa !5
  %277 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %274, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 8 dereferenceable(32) %276)
          to label %278 unwind label %352

278:                                              ; preds = %275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #4
  %279 = load i32, ptr %22, align 4, !tbaa !38
  %280 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 12
  store i32 %279, ptr %280, align 4, !tbaa !44
  %281 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.59, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %282 unwind label %357

282:                                              ; preds = %278
  %283 = load ptr, ptr %7, align 8, !tbaa !5
  %284 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %281, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 8 dereferenceable(32) %283)
          to label %285 unwind label %361

285:                                              ; preds = %282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #4
  %286 = load i32, ptr %22, align 4, !tbaa !38
  %287 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 13
  store i32 %286, ptr %287, align 8, !tbaa !45
  %288 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.60, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %289 unwind label %366

289:                                              ; preds = %285
  %290 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 17
  %291 = load ptr, ptr %7, align 8, !tbaa !5
  %292 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %288, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(8) %290, ptr noundef nonnull align 8 dereferenceable(32) %291)
          to label %293 unwind label %370

293:                                              ; preds = %289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #4
  %294 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %295 unwind label %375

295:                                              ; preds = %293
  %296 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 3
  %297 = load ptr, ptr %7, align 8, !tbaa !5
  %298 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %294, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(8) %296, ptr noundef nonnull align 8 dereferenceable(32) %297)
          to label %299 unwind label %379

299:                                              ; preds = %295
  %300 = xor i1 %298, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #4
  br i1 %300, label %301, label %384

301:                                              ; preds = %299
  %302 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 4
  store i8 1, ptr %302, align 8, !tbaa !46
  br label %386

303:                                              ; preds = %242
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %10, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %11, align 4
  br label %311

307:                                              ; preds = %244
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %10, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  br label %311

311:                                              ; preds = %307, %303
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #4
  br label %402

312:                                              ; preds = %248
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %10, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %11, align 4
  br label %320

316:                                              ; preds = %250
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %10, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  br label %320

320:                                              ; preds = %316, %312
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #4
  br label %402

321:                                              ; preds = %254
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %10, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %11, align 4
  br label %329

325:                                              ; preds = %256
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %10, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  br label %329

329:                                              ; preds = %325, %321
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #4
  br label %402

330:                                              ; preds = %260
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %10, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %11, align 4
  br label %338

334:                                              ; preds = %262
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %10, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  br label %338

338:                                              ; preds = %334, %330
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #4
  br label %402

339:                                              ; preds = %266
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %10, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %11, align 4
  br label %347

343:                                              ; preds = %268
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %10, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  br label %347

347:                                              ; preds = %343, %339
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #4
  br label %402

348:                                              ; preds = %271
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %10, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %11, align 4
  br label %356

352:                                              ; preds = %275
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %10, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  br label %356

356:                                              ; preds = %352, %348
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #4
  br label %402

357:                                              ; preds = %278
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %10, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %11, align 4
  br label %365

361:                                              ; preds = %282
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %10, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #4
  br label %365

365:                                              ; preds = %361, %357
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #4
  br label %402

366:                                              ; preds = %285
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %10, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %11, align 4
  br label %374

370:                                              ; preds = %289
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %10, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #4
  br label %374

374:                                              ; preds = %370, %366
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #4
  br label %402

375:                                              ; preds = %293
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %10, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %11, align 4
  br label %383

379:                                              ; preds = %295
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %10, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  br label %383

383:                                              ; preds = %379, %375
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #4
  br label %402

384:                                              ; preds = %299
  %385 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 4
  store i8 0, ptr %385, align 8, !tbaa !46
  br label %386

386:                                              ; preds = %384, %301
  %387 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 21
  store double -1.000000e+00, ptr %387, align 8, !tbaa !47
  %388 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 22
  store double -1.000000e+00, ptr %388, align 8, !tbaa !48
  %389 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 24
  call void @_ZNSt7__cxx114listIdSaIdEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %389) #4
  %390 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 29
  store i8 0, ptr %390, align 2, !tbaa !49
  %391 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 28
  store i8 0, ptr %391, align 1, !tbaa !50
  %392 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 26
  call void @_ZN10SimTKIpopt6Filter5ClearEv(ptr noundef nonnull align 8 dereferenceable(32) %392)
  %393 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  call void @_ZN10SimTKIpopt9IpoptData13SetFreeMuModeEb(ptr noundef nonnull align 8 dereferenceable(864) %393, i1 noundef zeroext true)
  %394 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %51, i32 0, i32 30
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %394, ptr noundef null)
  %396 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  call void @_ZN10SimTKIpopt9IpoptData6Set_muEd(ptr noundef nonnull align 8 dereferenceable(864) %396, double noundef 1.000000e+00)
  %397 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %51)
  call void @_ZN10SimTKIpopt9IpoptData7Set_tauEd(ptr noundef nonnull align 8 dereferenceable(864) %397, double noundef 0.000000e+00)
  %398 = load i8, ptr %31, align 1, !tbaa !40, !range !41, !noundef !42
  %399 = trunc i8 %398 to i1
  store i1 %399, ptr %4, align 1
  store i32 1, ptr %32, align 4
  br label %400

400:                                              ; preds = %386, %238, %147
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  %401 = load i1, ptr %4, align 1
  ret i1 %401

402:                                              ; preds = %383, %374, %365, %356, %347, %338, %329, %320, %311
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #4
  br label %403

403:                                              ; preds = %402, %221, %212, %203, %194
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br label %404

404:                                              ; preds = %403, %185, %176, %167, %158, %84, %75
  %405 = load ptr, ptr %10, align 8
  %406 = load i32, ptr %11, align 4
  %407 = insertvalue { ptr, i32 } poison, ptr %405, 0
  %408 = insertvalue { ptr, i32 } %407, i32 %406, 1
  resume { ptr, i32 } %408
}

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt6Filter5ClearEv(ptr noundef nonnull align 8 dereferenceable(32)) #3

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

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

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

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

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

!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, !20, i64 64}
!10 = !{!"_ZTSN10SimTKIpopt16AdaptiveMuUpdateE", !11, i64 0, !20, i64 56, !20, i64 64, !20, i64 72, !19, i64 80, !20, i64 88, !20, i64 96, !20, i64 104, !20, i64 112, !20, i64 120, !20, i64 128, !21, i64 136, !22, i64 140, !23, i64 144, !24, i64 148, !20, i64 152, !20, i64 160, !20, i64 168, !25, i64 176, !26, i64 184, !26, i64 192, !20, i64 200, !20, i64 208, !14, i64 216, !27, i64 224, !20, i64 248, !33, i64 256, !19, i64 288, !19, i64 289, !19, i64 290, !37, i64 296}
!11 = !{!"_ZTSN10SimTKIpopt8MuUpdateE", !12, i64 0}
!12 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !13, i64 0, !15, i64 16, !16, i64 24, !17, i64 32, !18, i64 40, !19, i64 48}
!13 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !14, i64 8}
!14 = !{!"int", !7, i64 0}
!15 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !6, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !6, i64 0}
!18 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !6, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"double", !7, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt23QualityFunctionMuOracle8NormEnumE", !7, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt23QualityFunctionMuOracle14CentralityEnumE", !7, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt23QualityFunctionMuOracle17BalancingTermEnumE", !7, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt16AdaptiveMuUpdate27AdaptiveMuGlobalizationEnumE", !7, i64 0}
!25 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_10LineSearchEEE", !6, i64 0}
!26 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8MuOracleEEE", !6, i64 0}
!27 = !{!"_ZTSNSt7__cxx114listIdSaIdEEE", !28, i64 0}
!28 = !{!"_ZTSNSt7__cxx1110_List_baseIdSaIdEEE", !29, i64 0}
!29 = !{!"_ZTSNSt7__cxx1110_List_baseIdSaIdEE10_List_implE", !30, i64 0}
!30 = !{!"_ZTSNSt8__detail17_List_node_headerE", !31, i64 0, !32, i64 16}
!31 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!32 = !{!"long", !7, i64 0}
!33 = !{!"_ZTSN10SimTKIpopt6FilterE", !14, i64 0, !34, i64 8}
!34 = !{!"_ZTSNSt7__cxx114listIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !35, i64 0}
!35 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !36, i64 0}
!36 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EE10_List_implE", !30, i64 0}
!37 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEE", !6, i64 0}
!38 = !{!14, !14, i64 0}
!39 = !{!10, !24, i64 148}
!40 = !{!19, !19, i64 0}
!41 = !{i8 0, i8 2}
!42 = !{}
!43 = !{!10, !21, i64 136}
!44 = !{!10, !22, i64 140}
!45 = !{!10, !23, i64 144}
!46 = !{!10, !19, i64 80}
!47 = !{!10, !20, i64 200}
!48 = !{!10, !20, i64 208}
!49 = !{!10, !19, i64 290}
!50 = !{!10, !19, i64 289}


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

@.str = external hidden unnamed_addr constant [12 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [14 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN10SimTKIpopt16AdaptiveMuUpdate14InitializeImplERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(304) %0, ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %2) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator.22", align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator.22", align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.22", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.22", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator.22", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.22", align 1
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.22", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.22", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.22", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.22", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.22", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.22", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.22", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.22", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.22", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.22", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.22", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.22", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.22", align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %43 unwind label %52

43:                                               ; preds = %3
  %44 = getelementptr inbounds i8, ptr %0, i64 56
  %45 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %46 unwind label %54

46:                                               ; preds = %43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %47 unwind label %57

47:                                               ; preds = %46
  %48 = getelementptr inbounds i8, ptr %0, i64 64
  %49 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %50 unwind label %59

50:                                               ; preds = %47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #4
  br i1 %49, label %62, label %51

51:                                               ; preds = %50
  store double -1.000000e+00, ptr %48, align 8, !tbaa !5
  br label %62

52:                                               ; preds = %3
  %53 = landingpad { ptr, i32 }
          cleanup
  br label %56

54:                                               ; preds = %43
  %55 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #4
  br label %56

56:                                               ; preds = %54, %52
  %.pn = phi { ptr, i32 } [ %55, %54 ], [ %53, %52 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #4
  br label %251

57:                                               ; preds = %46
  %58 = landingpad { ptr, i32 }
          cleanup
  br label %61

59:                                               ; preds = %47
  %60 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #4
  br label %61

61:                                               ; preds = %59, %57
  %.pn77 = phi { ptr, i32 } [ %60, %59 ], [ %58, %57 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #4
  br label %251

62:                                               ; preds = %51, %50
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %63 unwind label %103

63:                                               ; preds = %62
  %64 = getelementptr inbounds i8, ptr %0, i64 88
  %65 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %66 unwind label %105

66:                                               ; preds = %63
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %67 unwind label %108

67:                                               ; preds = %66
  %68 = getelementptr inbounds i8, ptr %0, i64 96
  %69 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %70 unwind label %110

70:                                               ; preds = %67
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %71 unwind label %113

71:                                               ; preds = %70
  %72 = getelementptr inbounds i8, ptr %0, i64 248
  %73 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %74 unwind label %115

74:                                               ; preds = %71
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %75 unwind label %118

75:                                               ; preds = %74
  %76 = getelementptr inbounds i8, ptr %0, i64 216
  %77 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetIntegerValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %78 unwind label %120

78:                                               ; preds = %75
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %79 unwind label %123

79:                                               ; preds = %78
  %80 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %81 unwind label %125

81:                                               ; preds = %79
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #4
  %82 = load i32, ptr %16, align 4, !tbaa !37
  %83 = getelementptr inbounds i8, ptr %0, i64 148
  store i32 %82, ptr %83, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %84 unwind label %128

84:                                               ; preds = %81
  %85 = getelementptr inbounds i8, ptr %0, i64 152
  %86 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %87 unwind label %130

87:                                               ; preds = %84
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %88 unwind label %133

88:                                               ; preds = %87
  %89 = getelementptr inbounds i8, ptr %0, i64 160
  %90 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %91 unwind label %135

91:                                               ; preds = %88
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %92 unwind label %138

92:                                               ; preds = %91
  %93 = getelementptr inbounds i8, ptr %0, i64 288
  %94 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetBoolValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 1 dereferenceable(1) %93, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %95 unwind label %140

95:                                               ; preds = %92
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #4
  %96 = getelementptr inbounds i8, ptr %0, i64 184
  %97 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_8MuOracleEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %96)
  %98 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %99 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %100 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %101 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %102 = call noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49) %97, ptr noundef nonnull align 8 dereferenceable(40) %98, ptr noundef nonnull align 8 dereferenceable(24) %99, ptr noundef nonnull align 8 dereferenceable(864) %100, ptr noundef nonnull align 8 dereferenceable(2025) %101, ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %2)
  br i1 %102, label %143, label %249

103:                                              ; preds = %62
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %107

105:                                              ; preds = %63
  %106 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #4
  br label %107

107:                                              ; preds = %105, %103
  %.pn79 = phi { ptr, i32 } [ %106, %105 ], [ %104, %103 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #4
  br label %251

108:                                              ; preds = %66
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %112

110:                                              ; preds = %67
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #4
  br label %112

112:                                              ; preds = %110, %108
  %.pn81 = phi { ptr, i32 } [ %111, %110 ], [ %109, %108 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #4
  br label %251

113:                                              ; preds = %70
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %117

115:                                              ; preds = %71
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #4
  br label %117

117:                                              ; preds = %115, %113
  %.pn83 = phi { ptr, i32 } [ %116, %115 ], [ %114, %113 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #4
  br label %251

118:                                              ; preds = %74
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %122

120:                                              ; preds = %75
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  br label %122

122:                                              ; preds = %120, %118
  %.pn85 = phi { ptr, i32 } [ %121, %120 ], [ %119, %118 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #4
  br label %251

123:                                              ; preds = %78
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %127

125:                                              ; preds = %79
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  br label %127

127:                                              ; preds = %125, %123
  %.pn87 = phi { ptr, i32 } [ %126, %125 ], [ %124, %123 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #4
  br label %250

128:                                              ; preds = %81
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %132

130:                                              ; preds = %84
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #4
  br label %132

132:                                              ; preds = %130, %128
  %.pn89 = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #4
  br label %250

133:                                              ; preds = %87
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %137

135:                                              ; preds = %88
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #4
  br label %137

137:                                              ; preds = %135, %133
  %.pn91 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #4
  br label %250

138:                                              ; preds = %91
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %142

140:                                              ; preds = %92
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  br label %142

142:                                              ; preds = %140, %138
  %.pn93 = phi { ptr, i32 } [ %141, %140 ], [ %139, %138 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #4
  br label %250

143:                                              ; preds = %95
  %144 = getelementptr inbounds i8, ptr %0, i64 192
  %145 = call noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_8MuOracleEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %144)
  br i1 %145, label %146, label %153

146:                                              ; preds = %143
  %147 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_8MuOracleEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %144)
  %148 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %149 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5IpNLPEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %150 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %151 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %152 = call noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49) %147, ptr noundef nonnull align 8 dereferenceable(40) %148, ptr noundef nonnull align 8 dereferenceable(24) %149, ptr noundef nonnull align 8 dereferenceable(864) %150, ptr noundef nonnull align 8 dereferenceable(2025) %151, ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %2)
  br i1 %152, label %153, label %249

153:                                              ; preds = %146, %143
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %154 unwind label %204

154:                                              ; preds = %153
  %155 = getelementptr inbounds i8, ptr %0, i64 104
  %156 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %157 unwind label %206

157:                                              ; preds = %154
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %158 unwind label %209

158:                                              ; preds = %157
  %159 = getelementptr inbounds i8, ptr %0, i64 112
  %160 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(8) %159, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %161 unwind label %211

161:                                              ; preds = %158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %162 unwind label %214

162:                                              ; preds = %161
  %163 = getelementptr inbounds i8, ptr %0, i64 120
  %164 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %165 unwind label %216

165:                                              ; preds = %162
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %166 unwind label %219

166:                                              ; preds = %165
  %167 = getelementptr inbounds i8, ptr %0, i64 128
  %168 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %169 unwind label %221

169:                                              ; preds = %166
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.57, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %170 unwind label %224

170:                                              ; preds = %169
  %171 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %172 unwind label %226

172:                                              ; preds = %170
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #4
  %173 = load i32, ptr %16, align 4, !tbaa !37
  %174 = getelementptr inbounds i8, ptr %0, i64 136
  store i32 %173, ptr %174, align 8, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %175 unwind label %229

175:                                              ; preds = %172
  %176 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %177 unwind label %231

177:                                              ; preds = %175
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #4
  %178 = load i32, ptr %16, align 4, !tbaa !37
  %179 = getelementptr inbounds i8, ptr %0, i64 140
  store i32 %178, ptr %179, align 4, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.59, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %180 unwind label %234

180:                                              ; preds = %177
  %181 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList12GetEnumValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %182 unwind label %236

182:                                              ; preds = %180
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #4
  %183 = load i32, ptr %16, align 4, !tbaa !37
  %184 = getelementptr inbounds i8, ptr %0, i64 144
  store i32 %183, ptr %184, align 8, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.60, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %185 unwind label %239

185:                                              ; preds = %182
  %186 = getelementptr inbounds i8, ptr %0, i64 168
  %187 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(8) %186, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %188 unwind label %241

188:                                              ; preds = %185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %189 unwind label %244

189:                                              ; preds = %188
  %190 = getelementptr inbounds i8, ptr %0, i64 72
  %191 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt11OptionsList15GetNumericValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERdS8_(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %192 unwind label %246

192:                                              ; preds = %189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #4
  %not. = xor i1 %191, true
  %spec.select = zext i1 %not. to i8
  %193 = getelementptr inbounds i8, ptr %0, i64 80
  store i8 %spec.select, ptr %193, align 8
  %194 = getelementptr inbounds i8, ptr %0, i64 200
  store <2 x double> <double -1.000000e+00, double -1.000000e+00>, ptr %194, align 8, !tbaa !42
  %195 = getelementptr inbounds i8, ptr %0, i64 224
  call void @_ZNSt7__cxx114listIdSaIdEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %195) #4
  %196 = getelementptr inbounds i8, ptr %0, i64 290
  store i8 0, ptr %196, align 2, !tbaa !43
  %197 = getelementptr inbounds i8, ptr %0, i64 289
  store i8 0, ptr %197, align 1, !tbaa !44
  %198 = getelementptr inbounds i8, ptr %0, i64 256
  call void @_ZN10SimTKIpopt6Filter5ClearEv(ptr noundef nonnull align 8 dereferenceable(32) %198)
  %199 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZN10SimTKIpopt9IpoptData13SetFreeMuModeEb(ptr noundef nonnull align 8 dereferenceable(864) %199, i1 noundef zeroext true)
  %200 = getelementptr inbounds i8, ptr %0, i64 296
  %201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef null)
  %202 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZN10SimTKIpopt9IpoptData6Set_muEd(ptr noundef nonnull align 8 dereferenceable(864) %202, double noundef 1.000000e+00)
  %203 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZN10SimTKIpopt9IpoptData7Set_tauEd(ptr noundef nonnull align 8 dereferenceable(864) %203, double noundef 0.000000e+00)
  br label %249

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

206:                                              ; preds = %154
  %207 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  br label %208

208:                                              ; preds = %206, %204
  %.pn95 = phi { ptr, i32 } [ %207, %206 ], [ %205, %204 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #4
  br label %250

209:                                              ; preds = %157
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %213

211:                                              ; preds = %158
  %212 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  br label %213

213:                                              ; preds = %211, %209
  %.pn97 = phi { ptr, i32 } [ %212, %211 ], [ %210, %209 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #4
  br label %250

214:                                              ; preds = %161
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %218

216:                                              ; preds = %162
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  br label %218

218:                                              ; preds = %216, %214
  %.pn99 = phi { ptr, i32 } [ %217, %216 ], [ %215, %214 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #4
  br label %250

219:                                              ; preds = %165
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %223

221:                                              ; preds = %166
  %222 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  br label %223

223:                                              ; preds = %221, %219
  %.pn101 = phi { ptr, i32 } [ %222, %221 ], [ %220, %219 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #4
  br label %250

224:                                              ; preds = %169
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %228

226:                                              ; preds = %170
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  br label %228

228:                                              ; preds = %226, %224
  %.pn103 = phi { ptr, i32 } [ %227, %226 ], [ %225, %224 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #4
  br label %250

229:                                              ; preds = %172
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %233

231:                                              ; preds = %175
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  br label %233

233:                                              ; preds = %231, %229
  %.pn105 = phi { ptr, i32 } [ %232, %231 ], [ %230, %229 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #4
  br label %250

234:                                              ; preds = %177
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %238

236:                                              ; preds = %180
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  br label %238

238:                                              ; preds = %236, %234
  %.pn107 = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #4
  br label %250

239:                                              ; preds = %182
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %243

241:                                              ; preds = %185
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  br label %243

243:                                              ; preds = %241, %239
  %.pn109 = phi { ptr, i32 } [ %242, %241 ], [ %240, %239 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #4
  br label %250

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

246:                                              ; preds = %189
  %247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  br label %248

248:                                              ; preds = %246, %244
  %.pn111 = phi { ptr, i32 } [ %247, %246 ], [ %245, %244 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #4
  br label %250

249:                                              ; preds = %146, %95, %192
  %.073 = phi i1 [ true, %192 ], [ false, %95 ], [ false, %146 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #4
  ret i1 %.073

250:                                              ; preds = %208, %213, %218, %223, %228, %233, %238, %243, %248, %142, %137, %132, %127
  %.pn111.pn.pn = phi { ptr, i32 } [ %.pn93, %142 ], [ %.pn91, %137 ], [ %.pn89, %132 ], [ %.pn87, %127 ], [ %.pn111, %248 ], [ %.pn109, %243 ], [ %.pn107, %238 ], [ %.pn105, %233 ], [ %.pn103, %228 ], [ %.pn101, %223 ], [ %.pn99, %218 ], [ %.pn97, %213 ], [ %.pn95, %208 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #4
  br label %251

251:                                              ; preds = %250, %122, %117, %112, %107, %61, %56
  %.pn111.pn.pn.pn = phi { ptr, i32 } [ %.pn111.pn.pn, %250 ], [ %.pn85, %122 ], [ %.pn83, %117 ], [ %.pn81, %112 ], [ %.pn79, %107 ], [ %.pn77, %61 ], [ %.pn, %56 ]
  resume { ptr, i32 } %.pn111.pn.pn.pn
}

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt23AlgorithmStrategyObject10InitializeERKNS_10JournalistERNS_8IpoptNLPERNS_9IpoptDataERNS_25IpoptCalculatedQuantitiesERKNS_11OptionsListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt6Filter5ClearEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

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

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

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

!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, !19, i64 64}
!6 = !{!"_ZTSN10SimTKIpopt16AdaptiveMuUpdateE", !7, i64 0, !19, i64 56, !19, i64 64, !19, i64 72, !18, i64 80, !19, i64 88, !19, i64 96, !19, i64 104, !19, i64 112, !19, i64 120, !19, i64 128, !20, i64 136, !21, i64 140, !22, i64 144, !23, i64 148, !19, i64 152, !19, i64 160, !19, i64 168, !24, i64 176, !25, i64 184, !25, i64 192, !19, i64 200, !19, i64 208, !10, i64 216, !26, i64 224, !19, i64 248, !32, i64 256, !18, i64 288, !18, i64 289, !18, i64 290, !36, i64 296}
!7 = !{!"_ZTSN10SimTKIpopt8MuUpdateE", !8, i64 0}
!8 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !9, i64 0, !13, i64 16, !15, i64 24, !16, i64 32, !17, i64 40, !18, i64 48}
!9 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !10, i64 8}
!10 = !{!"int", !11, i64 0}
!11 = !{!"omnipotent char", !12, i64 0}
!12 = !{!"Simple C++ TBAA"}
!13 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !14, i64 0}
!14 = !{!"any pointer", !11, i64 0}
!15 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !14, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !14, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !14, i64 0}
!18 = !{!"bool", !11, i64 0}
!19 = !{!"double", !11, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt23QualityFunctionMuOracle8NormEnumE", !11, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt23QualityFunctionMuOracle14CentralityEnumE", !11, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt23QualityFunctionMuOracle17BalancingTermEnumE", !11, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt16AdaptiveMuUpdate27AdaptiveMuGlobalizationEnumE", !11, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_10LineSearchEEE", !14, i64 0}
!25 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8MuOracleEEE", !14, i64 0}
!26 = !{!"_ZTSNSt7__cxx114listIdSaIdEEE", !27, i64 0}
!27 = !{!"_ZTSNSt7__cxx1110_List_baseIdSaIdEEE", !28, i64 0}
!28 = !{!"_ZTSNSt7__cxx1110_List_baseIdSaIdEE10_List_implE", !29, i64 0}
!29 = !{!"_ZTSNSt8__detail17_List_node_headerE", !30, i64 0, !31, i64 16}
!30 = !{!"_ZTSNSt8__detail15_List_node_baseE", !14, i64 0, !14, i64 8}
!31 = !{!"long", !11, i64 0}
!32 = !{!"_ZTSN10SimTKIpopt6FilterE", !10, i64 0, !33, i64 8}
!33 = !{!"_ZTSNSt7__cxx114listIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !34, i64 0}
!34 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !35, i64 0}
!35 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EE10_List_implE", !29, i64 0}
!36 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEE", !14, i64 0}
!37 = !{!10, !10, i64 0}
!38 = !{!6, !23, i64 148}
!39 = !{!6, !20, i64 136}
!40 = !{!6, !21, i64 140}
!41 = !{!6, !22, i64 144}
!42 = !{!19, !19, i64 0}
!43 = !{!6, !18, i64 290}
!44 = !{!6, !18, i64 289}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,MergedLoadStoreMotionPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass