; 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.SimTKIpopt::SmartPtr.20" = type { ptr }
%"class.SimTKIpopt::SmartPtr.47" = type { ptr }
%"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" }

@.str.78 = external hidden unnamed_addr constant [191 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 dso_local void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 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(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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare double @pow(double noundef, double noundef) #5

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZN10SimTKIpopt16AdaptiveMuUpdate26quality_function_pd_systemEv(ptr noundef nonnull align 8 dereferenceable(304) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %5 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %9 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %12 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %13 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %14 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %15 = alloca i32, align 4
  %16 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %17 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %18 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %19 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %20 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %21 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %22 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %23 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %31 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %32 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  call void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %5, ptr noundef nonnull align 8 dereferenceable(864) %32)
  %33 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %34 unwind label %113

34:                                               ; preds = %1
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %4, ptr noundef nonnull align 8 dereferenceable(280) %33)
          to label %35 unwind label %113

35:                                               ; preds = %34
  %36 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %37 unwind label %117

37:                                               ; preds = %35
  %38 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %36)
          to label %39 unwind label %117

39:                                               ; preds = %37
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %40 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
          to label %41 unwind label %121

41:                                               ; preds = %39
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %9, ptr noundef nonnull align 8 dereferenceable(864) %40)
          to label %42 unwind label %121

42:                                               ; preds = %41
  %43 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %44 unwind label %125

44:                                               ; preds = %42
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %8, ptr noundef nonnull align 8 dereferenceable(280) %43)
          to label %45 unwind label %125

45:                                               ; preds = %44
  %46 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %47 unwind label %129

47:                                               ; preds = %45
  %48 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %46)
          to label %49 unwind label %129

49:                                               ; preds = %47
  %50 = add nsw i32 %38, %48
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #7
  store i32 %50, ptr %3, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %51 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  call void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %12, ptr noundef nonnull align 8 dereferenceable(864) %51)
  %52 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %53 unwind label %137

53:                                               ; preds = %49
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %11, ptr noundef nonnull align 8 dereferenceable(280) %52)
          to label %54 unwind label %137

54:                                               ; preds = %53
  %55 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %56 unwind label %141

56:                                               ; preds = %54
  %57 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %55)
          to label %58 unwind label %141

58:                                               ; preds = %56
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %59 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
          to label %60 unwind label %145

60:                                               ; preds = %58
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %14, ptr noundef nonnull align 8 dereferenceable(864) %59)
          to label %61 unwind label %145

61:                                               ; preds = %60
  %62 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %63 unwind label %149

63:                                               ; preds = %61
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %13, ptr noundef nonnull align 8 dereferenceable(280) %62)
          to label %64 unwind label %149

64:                                               ; preds = %63
  %65 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %66 unwind label %153

66:                                               ; preds = %64
  %67 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %65)
          to label %68 unwind label %153

68:                                               ; preds = %66
  %69 = add nsw i32 %57, %67
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  store i32 %69, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %70 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  call void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %17, ptr noundef nonnull align 8 dereferenceable(864) %70)
  %71 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %72 unwind label %161

72:                                               ; preds = %68
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %16, ptr noundef nonnull align 8 dereferenceable(280) %71)
          to label %73 unwind label %161

73:                                               ; preds = %72
  %74 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %75 unwind label %165

75:                                               ; preds = %73
  %76 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %74)
          to label %77 unwind label %165

77:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %78 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
          to label %79 unwind label %169

79:                                               ; preds = %77
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %19, ptr noundef nonnull align 8 dereferenceable(864) %78)
          to label %80 unwind label %169

80:                                               ; preds = %79
  %81 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %82 unwind label %173

82:                                               ; preds = %80
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %18, ptr noundef nonnull align 8 dereferenceable(280) %81)
          to label %83 unwind label %173

83:                                               ; preds = %82
  %84 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %85 unwind label %177

85:                                               ; preds = %83
  %86 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %84)
          to label %87 unwind label %177

87:                                               ; preds = %85
  %88 = add nsw i32 %76, %86
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %89 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
          to label %90 unwind label %181

90:                                               ; preds = %87
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %21, ptr noundef nonnull align 8 dereferenceable(864) %89)
          to label %91 unwind label %181

91:                                               ; preds = %90
  %92 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %93 unwind label %185

93:                                               ; preds = %91
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %20, ptr noundef nonnull align 8 dereferenceable(280) %92)
          to label %94 unwind label %185

94:                                               ; preds = %93
  %95 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %96 unwind label %189

96:                                               ; preds = %94
  %97 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %95)
          to label %98 unwind label %189

98:                                               ; preds = %96
  %99 = add nsw i32 %88, %97
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %100 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
          to label %101 unwind label %193

101:                                              ; preds = %98
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %23, ptr noundef nonnull align 8 dereferenceable(864) %100)
          to label %102 unwind label %193

102:                                              ; preds = %101
  %103 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %104 unwind label %197

104:                                              ; preds = %102
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %22, ptr noundef nonnull align 8 dereferenceable(280) %103)
          to label %105 unwind label %197

105:                                              ; preds = %104
  %106 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %107 unwind label %201

107:                                              ; preds = %105
  %108 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %106)
          to label %109 unwind label %201

109:                                              ; preds = %107
  %110 = add nsw i32 %99, %108
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  store i32 %110, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  store double 0.000000e+00, ptr %24, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  store double 0.000000e+00, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  store double 0.000000e+00, ptr %26, align 8, !tbaa !11
  %111 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %31, i32 0, i32 11
  %112 = load i32, ptr %111, align 8, !tbaa !13
  switch i32 %112, label %315 [
    i32 0, label %215
    i32 1, label %242
    i32 2, label %278
    i32 3, label %285
  ]

113:                                              ; preds = %34, %1
  %114 = landingpad { ptr, i32 }
          cleanup
  %115 = extractvalue { ptr, i32 } %114, 0
  store ptr %115, ptr %6, align 8
  %116 = extractvalue { ptr, i32 } %114, 1
  store i32 %116, ptr %7, align 4
  br label %136

117:                                              ; preds = %37, %35
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %6, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %7, align 4
  br label %135

121:                                              ; preds = %41, %39
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %6, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %7, align 4
  br label %134

125:                                              ; preds = %44, %42
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %6, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %7, align 4
  br label %133

129:                                              ; preds = %47, %45
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %6, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %7, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  br label %133

133:                                              ; preds = %129, %125
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  br label %134

134:                                              ; preds = %133, %121
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  br label %135

135:                                              ; preds = %134, %117
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #7
  br label %136

136:                                              ; preds = %135, %113
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #7
  br label %371

137:                                              ; preds = %53, %49
  %138 = landingpad { ptr, i32 }
          cleanup
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %6, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %7, align 4
  br label %160

141:                                              ; preds = %56, %54
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %6, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %7, align 4
  br label %159

145:                                              ; preds = %60, %58
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %6, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %7, align 4
  br label %158

149:                                              ; preds = %63, %61
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %6, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %7, align 4
  br label %157

153:                                              ; preds = %66, %64
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %6, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %7, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  br label %157

157:                                              ; preds = %153, %149
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br label %158

158:                                              ; preds = %157, %145
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  br label %159

159:                                              ; preds = %158, %141
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  br label %160

160:                                              ; preds = %159, %137
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  br label %370

161:                                              ; preds = %72, %68
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %6, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %7, align 4
  br label %214

165:                                              ; preds = %75, %73
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %6, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %7, align 4
  br label %213

169:                                              ; preds = %79, %77
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %6, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %7, align 4
  br label %212

173:                                              ; preds = %82, %80
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %6, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %7, align 4
  br label %211

177:                                              ; preds = %85, %83
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %6, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %7, align 4
  br label %210

181:                                              ; preds = %90, %87
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %6, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %7, align 4
  br label %209

185:                                              ; preds = %93, %91
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %6, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %7, align 4
  br label %208

189:                                              ; preds = %96, %94
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %6, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %7, align 4
  br label %207

193:                                              ; preds = %101, %98
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %6, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %7, align 4
  br label %206

197:                                              ; preds = %104, %102
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %6, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %7, align 4
  br label %205

201:                                              ; preds = %107, %105
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %6, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %7, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  br label %205

205:                                              ; preds = %201, %197
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  br label %206

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

207:                                              ; preds = %206, %189
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br label %208

208:                                              ; preds = %207, %185
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br label %209

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

210:                                              ; preds = %209, %177
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  br label %211

211:                                              ; preds = %210, %173
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br label %212

212:                                              ; preds = %211, %169
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %213

213:                                              ; preds = %212, %165
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  br label %214

214:                                              ; preds = %213, %161
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %370

215:                                              ; preds = %109
  %216 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %217 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %216, i32 noundef 0)
  store double %217, ptr %24, align 8, !tbaa !11
  %218 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %219 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %218, i32 noundef 0)
  store double %219, ptr %25, align 8, !tbaa !11
  %220 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %221 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities20curr_complementarityEdNS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %220, double noundef 0.000000e+00, i32 noundef 0)
  store double %221, ptr %26, align 8, !tbaa !11
  %222 = load i32, ptr %3, align 4, !tbaa !9
  %223 = sitofp i32 %222 to double
  %224 = load double, ptr %24, align 8, !tbaa !11
  %225 = fdiv double %224, %223
  store double %225, ptr %24, align 8, !tbaa !11
  %226 = load i32, ptr %10, align 4, !tbaa !9
  %227 = icmp sgt i32 %226, 0
  br i1 %227, label %228, label %233

228:                                              ; preds = %215
  %229 = load i32, ptr %10, align 4, !tbaa !9
  %230 = sitofp i32 %229 to double
  %231 = load double, ptr %25, align 8, !tbaa !11
  %232 = fdiv double %231, %230
  store double %232, ptr %25, align 8, !tbaa !11
  br label %233

233:                                              ; preds = %228, %215
  %234 = load i32, ptr %15, align 4, !tbaa !9
  %235 = icmp sgt i32 %234, 0
  br i1 %235, label %236, label %241

236:                                              ; preds = %233
  %237 = load i32, ptr %15, align 4, !tbaa !9
  %238 = sitofp i32 %237 to double
  %239 = load double, ptr %26, align 8, !tbaa !11
  %240 = fdiv double %239, %238
  store double %240, ptr %26, align 8, !tbaa !11
  br label %241

241:                                              ; preds = %236, %233
  br label %315

242:                                              ; preds = %109
  %243 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %244 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %243, i32 noundef 1)
  store double %244, ptr %24, align 8, !tbaa !11
  %245 = load double, ptr %24, align 8, !tbaa !11
  %246 = load double, ptr %24, align 8, !tbaa !11
  %247 = fmul double %246, %245
  store double %247, ptr %24, align 8, !tbaa !11
  %248 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %249 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %248, i32 noundef 1)
  store double %249, ptr %25, align 8, !tbaa !11
  %250 = load double, ptr %25, align 8, !tbaa !11
  %251 = load double, ptr %25, align 8, !tbaa !11
  %252 = fmul double %251, %250
  store double %252, ptr %25, align 8, !tbaa !11
  %253 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %254 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities20curr_complementarityEdNS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %253, double noundef 0.000000e+00, i32 noundef 1)
  store double %254, ptr %26, align 8, !tbaa !11
  %255 = load double, ptr %26, align 8, !tbaa !11
  %256 = load double, ptr %26, align 8, !tbaa !11
  %257 = fmul double %256, %255
  store double %257, ptr %26, align 8, !tbaa !11
  %258 = load i32, ptr %3, align 4, !tbaa !9
  %259 = sitofp i32 %258 to double
  %260 = load double, ptr %24, align 8, !tbaa !11
  %261 = fdiv double %260, %259
  store double %261, ptr %24, align 8, !tbaa !11
  %262 = load i32, ptr %10, align 4, !tbaa !9
  %263 = icmp sgt i32 %262, 0
  br i1 %263, label %264, label %269

264:                                              ; preds = %242
  %265 = load i32, ptr %10, align 4, !tbaa !9
  %266 = sitofp i32 %265 to double
  %267 = load double, ptr %25, align 8, !tbaa !11
  %268 = fdiv double %267, %266
  store double %268, ptr %25, align 8, !tbaa !11
  br label %269

269:                                              ; preds = %264, %242
  %270 = load i32, ptr %15, align 4, !tbaa !9
  %271 = icmp sgt i32 %270, 0
  br i1 %271, label %272, label %277

272:                                              ; preds = %269
  %273 = load i32, ptr %15, align 4, !tbaa !9
  %274 = sitofp i32 %273 to double
  %275 = load double, ptr %26, align 8, !tbaa !11
  %276 = fdiv double %275, %274
  store double %276, ptr %26, align 8, !tbaa !11
  br label %277

277:                                              ; preds = %272, %269
  br label %315

278:                                              ; preds = %109
  %279 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %280 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %279, i32 noundef 2)
  store double %280, ptr %24, align 8, !tbaa !11
  %281 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %282 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %281, i32 noundef 2)
  store double %282, ptr %25, align 8, !tbaa !11
  %283 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %284 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities20curr_complementarityEdNS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %283, double noundef 0.000000e+00, i32 noundef 2)
  store double %284, ptr %26, align 8, !tbaa !11
  br label %315

285:                                              ; preds = %109
  %286 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %287 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %286, i32 noundef 1)
  store double %287, ptr %24, align 8, !tbaa !11
  %288 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %289 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %288, i32 noundef 1)
  store double %289, ptr %25, align 8, !tbaa !11
  %290 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %291 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities20curr_complementarityEdNS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %290, double noundef 0.000000e+00, i32 noundef 1)
  store double %291, ptr %26, align 8, !tbaa !11
  %292 = load i32, ptr %3, align 4, !tbaa !9
  %293 = sitofp i32 %292 to double
  %294 = call double @sqrt(double noundef %293) #7
  %295 = load double, ptr %24, align 8, !tbaa !11
  %296 = fdiv double %295, %294
  store double %296, ptr %24, align 8, !tbaa !11
  %297 = load i32, ptr %10, align 4, !tbaa !9
  %298 = icmp sgt i32 %297, 0
  br i1 %298, label %299, label %305

299:                                              ; preds = %285
  %300 = load i32, ptr %10, align 4, !tbaa !9
  %301 = sitofp i32 %300 to double
  %302 = call double @sqrt(double noundef %301) #7
  %303 = load double, ptr %25, align 8, !tbaa !11
  %304 = fdiv double %303, %302
  store double %304, ptr %25, align 8, !tbaa !11
  br label %305

305:                                              ; preds = %299, %285
  %306 = load i32, ptr %15, align 4, !tbaa !9
  %307 = icmp sgt i32 %306, 0
  br i1 %307, label %308, label %314

308:                                              ; preds = %305
  %309 = load i32, ptr %15, align 4, !tbaa !9
  %310 = sitofp i32 %309 to double
  %311 = call double @sqrt(double noundef %310) #7
  %312 = load double, ptr %26, align 8, !tbaa !11
  %313 = fdiv double %312, %311
  store double %313, ptr %26, align 8, !tbaa !11
  br label %314

314:                                              ; preds = %308, %305
  br label %315

315:                                              ; preds = %314, %278, %277, %241, %109
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  store double 0.000000e+00, ptr %27, align 8, !tbaa !11
  %316 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %31, i32 0, i32 12
  %317 = load i32, ptr %316, align 4, !tbaa !40
  %318 = icmp ne i32 %317, 0
  br i1 %318, label %319, label %341

319:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %320 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %321 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_centrality_measureEv(ptr noundef nonnull align 8 dereferenceable(2025) %320)
  store double %321, ptr %28, align 8, !tbaa !11
  %322 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %31, i32 0, i32 12
  %323 = load i32, ptr %322, align 4, !tbaa !40
  switch i32 %323, label %339 [
    i32 1, label %324
    i32 2, label %330
    i32 3, label %334
  ]

324:                                              ; preds = %319
  %325 = load double, ptr %26, align 8, !tbaa !11
  %326 = fneg double %325
  %327 = load double, ptr %28, align 8, !tbaa !11
  %328 = call double @log(double noundef %327) #7
  %329 = fmul double %326, %328
  store double %329, ptr %27, align 8, !tbaa !11
  br label %340

330:                                              ; preds = %319
  %331 = load double, ptr %26, align 8, !tbaa !11
  %332 = load double, ptr %28, align 8, !tbaa !11
  %333 = fdiv double %331, %332
  store double %333, ptr %27, align 8, !tbaa !11
  br label %340

334:                                              ; preds = %319
  %335 = load double, ptr %26, align 8, !tbaa !11
  %336 = load double, ptr %28, align 8, !tbaa !11
  %337 = call double @pow(double noundef %336, double noundef 3.000000e+00) #7
  %338 = fdiv double %335, %337
  store double %338, ptr %27, align 8, !tbaa !11
  br label %340

339:                                              ; preds = %319
  br label %340

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

341:                                              ; preds = %340, %315
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  store double 0.000000e+00, ptr %29, align 8, !tbaa !11
  %342 = getelementptr inbounds %"class.SimTKIpopt::AdaptiveMuUpdate", ptr %31, i32 0, i32 13
  %343 = load i32, ptr %342, align 8, !tbaa !41
  switch i32 %343, label %352 [
    i32 0, label %353
    i32 1, label %344
  ]

344:                                              ; preds = %341
  %345 = load double, ptr %24, align 8, !tbaa !11
  %346 = load double, ptr %25, align 8, !tbaa !11
  %347 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %345, double noundef %346)
  %348 = load double, ptr %26, align 8, !tbaa !11
  %349 = fsub double %347, %348
  %350 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 0.000000e+00, double noundef %349)
  %351 = call double @pow(double noundef %350, double noundef 3.000000e+00) #7
  store double %351, ptr %29, align 8, !tbaa !11
  br label %353

352:                                              ; preds = %341
  br label %353

353:                                              ; preds = %352, %344, %341
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %354 = load double, ptr %25, align 8, !tbaa !11
  %355 = load double, ptr %24, align 8, !tbaa !11
  %356 = fadd double %354, %355
  %357 = load double, ptr %26, align 8, !tbaa !11
  %358 = fadd double %356, %357
  %359 = load double, ptr %27, align 8, !tbaa !11
  %360 = fadd double %358, %359
  %361 = load double, ptr %29, align 8, !tbaa !11
  %362 = fadd double %360, %361
  store double %362, ptr %30, align 8, !tbaa !11
  %363 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %31)
  %364 = load double, ptr %25, align 8, !tbaa !11
  %365 = load double, ptr %24, align 8, !tbaa !11
  %366 = load double, ptr %26, align 8, !tbaa !11
  %367 = load double, ptr %27, align 8, !tbaa !11
  %368 = load double, ptr %30, align 8, !tbaa !11
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %363, i32 noundef 6, i32 noundef 4, ptr noundef @.str.78, double noundef %364, double noundef %365, double noundef %366, double noundef %367, double noundef %368)
  %369 = load double, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #7
  ret double %369

370:                                              ; preds = %214, %160
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  br label %371

371:                                              ; preds = %370, %136
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #7
  br label %372

372:                                              ; preds = %371
  %373 = load ptr, ptr %6, align 8
  %374 = load i32, ptr %7, align 4
  %375 = insertvalue { ptr, i32 } poison, ptr %373, 0
  %376 = insertvalue { ptr, i32 } %375, i32 %374, 1
  resume { ptr, i32 } %376
}

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

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

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

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

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

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025), i32 noundef) #3

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities20curr_complementarityEdNS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025), double noundef, i32 noundef) #3

; Function Attrs: nounwind
declare double @sqrt(double noundef) #5

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_centrality_measureEv(ptr noundef nonnull align 8 dereferenceable(2025)) #3

; Function Attrs: nounwind
declare double @log(double noundef) #5

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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !23, i64 136}
!14 = !{!"_ZTSN10SimTKIpopt16AdaptiveMuUpdateE", !15, i64 0, !12, i64 56, !12, i64 64, !12, i64 72, !22, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !12, i64 112, !12, i64 120, !12, i64 128, !23, i64 136, !24, i64 140, !25, i64 144, !26, i64 148, !12, i64 152, !12, i64 160, !12, i64 168, !27, i64 176, !28, i64 184, !28, i64 192, !12, i64 200, !12, i64 208, !10, i64 216, !29, i64 224, !12, i64 248, !35, i64 256, !22, i64 288, !22, i64 289, !22, i64 290, !39, i64 296}
!15 = !{!"_ZTSN10SimTKIpopt8MuUpdateE", !16, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !17, i64 0, !18, i64 16, !19, i64 24, !20, i64 32, !21, i64 40, !22, i64 48}
!17 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !10, i64 8}
!18 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!19 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !6, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !6, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !6, i64 0}
!22 = !{!"bool", !7, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt23QualityFunctionMuOracle8NormEnumE", !7, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt23QualityFunctionMuOracle14CentralityEnumE", !7, i64 0}
!25 = !{!"_ZTSN10SimTKIpopt23QualityFunctionMuOracle17BalancingTermEnumE", !7, i64 0}
!26 = !{!"_ZTSN10SimTKIpopt16AdaptiveMuUpdate27AdaptiveMuGlobalizationEnumE", !7, i64 0}
!27 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_10LineSearchEEE", !6, i64 0}
!28 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8MuOracleEEE", !6, i64 0}
!29 = !{!"_ZTSNSt7__cxx114listIdSaIdEEE", !30, i64 0}
!30 = !{!"_ZTSNSt7__cxx1110_List_baseIdSaIdEEE", !31, i64 0}
!31 = !{!"_ZTSNSt7__cxx1110_List_baseIdSaIdEE10_List_implE", !32, i64 0}
!32 = !{!"_ZTSNSt8__detail17_List_node_headerE", !33, i64 0, !34, i64 16}
!33 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!34 = !{!"long", !7, i64 0}
!35 = !{!"_ZTSN10SimTKIpopt6FilterE", !10, i64 0, !36, i64 8}
!36 = !{!"_ZTSNSt7__cxx114listIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !37, i64 0}
!37 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !38, i64 0}
!38 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EE10_List_implE", !32, i64 0}
!39 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEE", !6, i64 0}
!40 = !{!14, !24, i64 140}
!41 = !{!14, !25, i64 144}


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

%"class.SimTKIpopt::SmartPtr.20" = type { ptr }
%"class.SimTKIpopt::SmartPtr.47" = type { ptr }

@.str.78 = external hidden unnamed_addr constant [191 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 dso_local void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 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(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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @pow(double noundef, double noundef) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZN10SimTKIpopt16AdaptiveMuUpdate26quality_function_pd_systemEv(ptr noundef nonnull align 8 dereferenceable(304) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %3 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %4 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %5 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %6 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %7 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %8 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %9 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %10 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %11 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %12 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %13 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %14 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %15 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  %16 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %17 = alloca %"class.SimTKIpopt::SmartPtr.20", align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #8
  %18 = tail call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %3, ptr noundef nonnull align 8 dereferenceable(864) %18)
  %19 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %2, ptr noundef nonnull align 8 dereferenceable(280) %19)
          to label %20 unwind label %83

20:                                               ; preds = %1
  %21 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  %22 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %21)
          to label %23 unwind label %85

23:                                               ; preds = %20
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #8
  %24 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %25 unwind label %87

25:                                               ; preds = %23
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %5, ptr noundef nonnull align 8 dereferenceable(864) %24)
          to label %26 unwind label %87

26:                                               ; preds = %25
  %27 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %4, ptr noundef nonnull align 8 dereferenceable(280) %27)
          to label %28 unwind label %89

28:                                               ; preds = %26
  %29 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %30 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %29)
          to label %31 unwind label %91

31:                                               ; preds = %28
  %32 = add nsw i32 %30, %22
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %2) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #8
  %33 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %7, ptr noundef nonnull align 8 dereferenceable(864) %33)
  %34 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %6, ptr noundef nonnull align 8 dereferenceable(280) %34)
          to label %35 unwind label %97

35:                                               ; preds = %31
  %36 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %37 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %36)
          to label %38 unwind label %99

38:                                               ; preds = %35
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #8
  %39 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %40 unwind label %101

40:                                               ; preds = %38
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %9, ptr noundef nonnull align 8 dereferenceable(864) %39)
          to label %41 unwind label %101

41:                                               ; preds = %40
  %42 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %8, ptr noundef nonnull align 8 dereferenceable(280) %42)
          to label %43 unwind label %103

43:                                               ; preds = %41
  %44 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
  %45 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %44)
          to label %46 unwind label %105

46:                                               ; preds = %43
  %47 = add nsw i32 %45, %37
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %48 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %11, ptr noundef nonnull align 8 dereferenceable(864) %48)
  %49 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %10, ptr noundef nonnull align 8 dereferenceable(280) %49)
          to label %50 unwind label %111

50:                                               ; preds = %46
  %51 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
  %52 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %51)
          to label %53 unwind label %113

53:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  %54 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %55 unwind label %115

55:                                               ; preds = %53
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %13, ptr noundef nonnull align 8 dereferenceable(864) %54)
          to label %56 unwind label %115

56:                                               ; preds = %55
  %57 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %12, ptr noundef nonnull align 8 dereferenceable(280) %57)
          to label %58 unwind label %117

58:                                               ; preds = %56
  %59 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
  %60 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %59)
          to label %61 unwind label %119

61:                                               ; preds = %58
  %62 = add nsw i32 %60, %52
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  %63 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %64 unwind label %121

64:                                               ; preds = %61
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %15, ptr noundef nonnull align 8 dereferenceable(864) %63)
          to label %65 unwind label %121

65:                                               ; preds = %64
  %66 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %14, ptr noundef nonnull align 8 dereferenceable(280) %66)
          to label %67 unwind label %123

67:                                               ; preds = %65
  %68 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  %69 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %68)
          to label %70 unwind label %125

70:                                               ; preds = %67
  %71 = add nsw i32 %62, %69
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  %72 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %73 unwind label %127

73:                                               ; preds = %70
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.20") align 8 %17, ptr noundef nonnull align 8 dereferenceable(864) %72)
          to label %74 unwind label %127

74:                                               ; preds = %73
  %75 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.47") align 8 %16, ptr noundef nonnull align 8 dereferenceable(280) %75)
          to label %76 unwind label %129

76:                                               ; preds = %74
  %77 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
  %78 = invoke noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %77)
          to label %79 unwind label %131

79:                                               ; preds = %76
  %80 = add nsw i32 %71, %78
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  %81 = getelementptr inbounds i8, ptr %0, i64 136
  %82 = load i32, ptr %81, align 8, !tbaa !5
  switch i32 %82, label %202 [
    i32 0, label %143
    i32 1, label %159
    i32 2, label %178
    i32 3, label %185
  ]

83:                                               ; preds = %1
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %96

85:                                               ; preds = %20
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %95

87:                                               ; preds = %25, %23
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %94

89:                                               ; preds = %26
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %93

91:                                               ; preds = %28
  %92 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #8
  br label %93

93:                                               ; preds = %91, %89
  %.pn = phi { ptr, i32 } [ %92, %91 ], [ %90, %89 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  br label %94

94:                                               ; preds = %93, %87
  %.pn.pn = phi { ptr, i32 } [ %.pn, %93 ], [ %88, %87 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  br label %95

95:                                               ; preds = %94, %85
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %94 ], [ %86, %85 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %2) #8
  br label %96

96:                                               ; preds = %95, %83
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %95 ], [ %84, %83 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #8
  br label %232

97:                                               ; preds = %31
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %110

99:                                               ; preds = %35
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %109

101:                                              ; preds = %40, %38
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %108

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

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

107:                                              ; preds = %105, %103
  %.pn91 = phi { ptr, i32 } [ %106, %105 ], [ %104, %103 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  br label %108

108:                                              ; preds = %107, %101
  %.pn91.pn = phi { ptr, i32 } [ %.pn91, %107 ], [ %102, %101 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #8
  br label %109

109:                                              ; preds = %108, %99
  %.pn91.pn.pn = phi { ptr, i32 } [ %.pn91.pn, %108 ], [ %100, %99 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  br label %110

110:                                              ; preds = %109, %97
  %.pn91.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn.pn, %109 ], [ %98, %97 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  br label %232

111:                                              ; preds = %46
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %142

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

115:                                              ; preds = %55, %53
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %140

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

119:                                              ; preds = %58
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %138

121:                                              ; preds = %64, %61
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %137

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

125:                                              ; preds = %67
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %135

127:                                              ; preds = %73, %70
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %134

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

131:                                              ; preds = %76
  %132 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  br label %133

133:                                              ; preds = %131, %129
  %.pn96 = phi { ptr, i32 } [ %132, %131 ], [ %130, %129 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br label %134

134:                                              ; preds = %133, %127
  %.pn96.pn = phi { ptr, i32 } [ %.pn96, %133 ], [ %128, %127 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  br label %135

135:                                              ; preds = %134, %125
  %.pn96.pn.pn = phi { ptr, i32 } [ %.pn96.pn, %134 ], [ %126, %125 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  br label %136

136:                                              ; preds = %135, %123
  %.pn96.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn, %135 ], [ %124, %123 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  br label %137

137:                                              ; preds = %136, %121
  %.pn96.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn, %136 ], [ %122, %121 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  br label %138

138:                                              ; preds = %137, %119
  %.pn96.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn, %137 ], [ %120, %119 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br label %139

139:                                              ; preds = %138, %117
  %.pn96.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn, %138 ], [ %118, %117 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  br label %140

140:                                              ; preds = %139, %115
  %.pn96.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn, %139 ], [ %116, %115 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  br label %141

141:                                              ; preds = %140, %113
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn, %140 ], [ %114, %113 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  br label %142

142:                                              ; preds = %141, %111
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn, %141 ], [ %112, %111 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  br label %232

143:                                              ; preds = %79
  %144 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %145 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %144, i32 noundef 0)
  %146 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %147 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %146, i32 noundef 0)
  %148 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %149 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities20curr_complementarityEdNS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %148, double noundef 0.000000e+00, i32 noundef 0)
  %150 = sitofp i32 %32 to double
  %151 = fdiv double %145, %150
  %152 = icmp sgt i32 %47, 0
  %153 = uitofp nneg i32 %47 to double
  %154 = fdiv double %147, %153
  %.076 = select i1 %152, double %154, double %147
  %155 = icmp sgt i32 %80, 0
  br i1 %155, label %156, label %202

156:                                              ; preds = %143
  %157 = uitofp nneg i32 %80 to double
  %158 = fdiv double %149, %157
  br label %202

159:                                              ; preds = %79
  %160 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %161 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %160, i32 noundef 1)
  %162 = fmul double %161, %161
  %163 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %164 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %163, i32 noundef 1)
  %165 = fmul double %164, %164
  %166 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %167 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities20curr_complementarityEdNS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %166, double noundef 0.000000e+00, i32 noundef 1)
  %168 = fmul double %167, %167
  %169 = sitofp i32 %32 to double
  %170 = fdiv double %162, %169
  %171 = icmp sgt i32 %47, 0
  %172 = uitofp nneg i32 %47 to double
  %173 = fdiv double %165, %172
  %.177 = select i1 %171, double %173, double %165
  %174 = icmp sgt i32 %80, 0
  br i1 %174, label %175, label %202

175:                                              ; preds = %159
  %176 = uitofp nneg i32 %80 to double
  %177 = fdiv double %168, %176
  br label %202

178:                                              ; preds = %79
  %179 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %180 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %179, i32 noundef 2)
  %181 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %182 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %181, i32 noundef 2)
  %183 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %184 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities20curr_complementarityEdNS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %183, double noundef 0.000000e+00, i32 noundef 2)
  br label %202

185:                                              ; preds = %79
  %186 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %187 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_dual_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %186, i32 noundef 1)
  %188 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %189 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities25curr_primal_infeasibilityENS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %188, i32 noundef 1)
  %190 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %191 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities20curr_complementarityEdNS_9ENormTypeE(ptr noundef nonnull align 8 dereferenceable(2025) %190, double noundef 0.000000e+00, i32 noundef 1)
  %192 = sitofp i32 %32 to double
  %193 = call double @sqrt(double noundef %192) #8
  %194 = fdiv double %187, %193
  %195 = icmp sgt i32 %47, 0
  %196 = uitofp nneg i32 %47 to double
  %sqrt = call double @llvm.sqrt.f64(double %196)
  %197 = fdiv double %189, %sqrt
  %.278 = select i1 %195, double %197, double %189
  %198 = icmp sgt i32 %80, 0
  br i1 %198, label %199, label %202

199:                                              ; preds = %185
  %200 = uitofp nneg i32 %80 to double
  %sqrt109 = call double @llvm.sqrt.f64(double %200)
  %201 = fdiv double %191, %sqrt109
  br label %202

202:                                              ; preds = %185, %199, %159, %175, %143, %156, %178, %79
  %.080 = phi double [ 0.000000e+00, %79 ], [ %194, %199 ], [ %194, %185 ], [ %180, %178 ], [ %170, %175 ], [ %170, %159 ], [ %151, %156 ], [ %151, %143 ]
  %.379 = phi double [ 0.000000e+00, %79 ], [ %.278, %199 ], [ %.278, %185 ], [ %182, %178 ], [ %.177, %175 ], [ %.177, %159 ], [ %.076, %156 ], [ %.076, %143 ]
  %.075 = phi double [ 0.000000e+00, %79 ], [ %201, %199 ], [ %191, %185 ], [ %184, %178 ], [ %177, %175 ], [ %168, %159 ], [ %158, %156 ], [ %149, %143 ]
  %203 = getelementptr inbounds i8, ptr %0, i64 140
  %204 = load i32, ptr %203, align 4, !tbaa !37
  %.not = icmp eq i32 %204, 0
  br i1 %.not, label %218, label %205

205:                                              ; preds = %202
  %206 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %207 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_centrality_measureEv(ptr noundef nonnull align 8 dereferenceable(2025) %206)
  %208 = load i32, ptr %203, align 4, !tbaa !37
  switch i32 %208, label %218 [
    i32 1, label %209
    i32 2, label %213
    i32 3, label %215
  ]

209:                                              ; preds = %205
  %210 = fneg double %.075
  %211 = call double @log(double noundef %207) #8
  %212 = fmul double %211, %210
  br label %218

213:                                              ; preds = %205
  %214 = fdiv double %.075, %207
  br label %218

215:                                              ; preds = %205
  %216 = call double @pow(double noundef %207, double noundef 3.000000e+00) #8
  %217 = fdiv double %.075, %216
  br label %218

218:                                              ; preds = %209, %213, %215, %205, %202
  %.174 = phi double [ 0.000000e+00, %202 ], [ 0.000000e+00, %205 ], [ %217, %215 ], [ %214, %213 ], [ %212, %209 ]
  %219 = getelementptr inbounds i8, ptr %0, i64 144
  %220 = load i32, ptr %219, align 8, !tbaa !38
  %cond = icmp eq i32 %220, 1
  br i1 %cond, label %221, label %226

221:                                              ; preds = %218
  %222 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %.080, double noundef %.379)
  %223 = fsub double %222, %.075
  %224 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 0.000000e+00, double noundef %223)
  %225 = call double @pow(double noundef %224, double noundef 3.000000e+00) #8
  br label %226

226:                                              ; preds = %218, %221
  %.052 = phi double [ %225, %221 ], [ 0.000000e+00, %218 ]
  %227 = fadd double %.080, %.379
  %228 = fadd double %227, %.075
  %229 = fadd double %228, %.174
  %230 = fadd double %229, %.052
  %231 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %231, i32 noundef 6, i32 noundef 4, ptr noundef nonnull @.str.78, double noundef %.379, double noundef %.080, double noundef %.075, double noundef %.174, double noundef %230)
  ret double %230

232:                                              ; preds = %110, %142, %96
  %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %96 ], [ %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn, %142 ], [ %.pn91.pn.pn.pn, %110 ]
  resume { ptr, i32 } %.pn96.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #5

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities23curr_centrality_measureEv(ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @log(double noundef) local_unnamed_addr #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.sqrt.f64(double) #7

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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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, !20, i64 136}
!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 = !{!6, !21, i64 140}
!38 = !{!6, !22, i64 144}


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