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

; 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.40" = type { ptr }
%"class.SimTKIpopt::SmartPtr.10" = type { ptr }
%"class.SimTKIpopt::SmartPtr.51" = type { ptr }
%"class.SimTKIpopt::SmartPtr.39" = type { ptr }
%"class.SimTKIpopt::BacktrackingLineSearch" = type { %"class.SimTKIpopt::LineSearch.base", double, i32, double, i32, i8, i8, i8, double, double, double, i32, i32, i8, i8, i32, i32, double, %"class.SimTKIpopt::SmartPtr.10", %"class.SimTKIpopt::SmartPtr.10", double, %"class.SimTKIpopt::SmartPtr.10", i32, i8, i8, i8, i8, i32, i32, i8, %"class.SimTKIpopt::SmartPtr.11", %"class.SimTKIpopt::SmartPtr.12", %"class.SimTKIpopt::SmartPtr.13" }
%"class.SimTKIpopt::LineSearch.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.11" = type { ptr }
%"class.SimTKIpopt::SmartPtr.12" = type { ptr }
%"class.SimTKIpopt::SmartPtr.13" = type { ptr }

; 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(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49)) #2 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.51") 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: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.51") 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: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8, ptr noundef nonnull align 8 dereferenceable(280)) #2 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10SimTKIpopt22BacktrackingLineSearch15PerformDualStepEddRNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(224) %0, double noundef %1, double noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %13 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %14 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %15 = alloca double, align 8
  %16 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %17 = alloca %"class.SimTKIpopt::SmartPtr.10", align 8
  %18 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %19 = alloca %"class.SimTKIpopt::SmartPtr.10", align 8
  %20 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %21 = alloca %"class.SimTKIpopt::SmartPtr.10", align 8
  %22 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %23 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %24 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %25 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %26 = alloca %"class.SimTKIpopt::SmartPtr.10", align 8
  %27 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %28 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %29 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %30 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %31 = alloca double, align 8
  %32 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %33 = alloca double, align 8
  %34 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %35 = alloca double, align 8
  %36 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %37 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store double %1, ptr %6, align 8, !tbaa !9
  store double %2, ptr %7, align 8, !tbaa !9
  store ptr %3, ptr %8, align 8, !tbaa !5
  %38 = load ptr, ptr %5, align 8
  %39 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
  %40 = load double, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %41 = load ptr, ptr %8, align 8, !tbaa !5
  %42 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %41)
  call void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %9, ptr noundef nonnull align 8 dereferenceable(280) %42)
  %43 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %44 unwind label %66

44:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %45 = load ptr, ptr %8, align 8, !tbaa !5
  %46 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %47 unwind label %70

47:                                               ; preds = %44
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %12, ptr noundef nonnull align 8 dereferenceable(280) %46)
          to label %48 unwind label %70

48:                                               ; preds = %47
  %49 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %50 unwind label %74

50:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %51 = load ptr, ptr %8, align 8, !tbaa !5
  %52 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %53 unwind label %78

53:                                               ; preds = %50
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %13, ptr noundef nonnull align 8 dereferenceable(280) %52)
          to label %54 unwind label %78

54:                                               ; preds = %53
  %55 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %56 unwind label %82

56:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %57 = load ptr, ptr %8, align 8, !tbaa !5
  %58 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %59 unwind label %86

59:                                               ; preds = %56
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %14, ptr noundef nonnull align 8 dereferenceable(280) %58)
          to label %60 unwind label %86

60:                                               ; preds = %59
  %61 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %62 unwind label %90

62:                                               ; preds = %60
  invoke void @_ZN10SimTKIpopt9IpoptData32SetTrialBoundMultipliersFromStepEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(864) %39, double noundef %40, ptr noundef nonnull align 8 dereferenceable(205) %43, ptr noundef nonnull align 8 dereferenceable(205) %49, ptr noundef nonnull align 8 dereferenceable(205) %55, ptr noundef nonnull align 8 dereferenceable(205) %61)
          to label %63 unwind label %90

63:                                               ; preds = %62
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  store double -1.000000e+00, ptr %15, align 8, !tbaa !9
  %64 = getelementptr inbounds %"class.SimTKIpopt::BacktrackingLineSearch", ptr %38, i32 0, i32 2
  %65 = load i32, ptr %64, align 8, !tbaa !11
  switch i32 %65, label %384 [
    i32 0, label %100
    i32 1, label %102
    i32 2, label %104
    i32 3, label %108
    i32 4, label %112
    i32 5, label %113
    i32 6, label %113
  ]

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

70:                                               ; preds = %47, %44
  %71 = landingpad { ptr, i32 }
          cleanup
  %72 = extractvalue { ptr, i32 } %71, 0
  store ptr %72, ptr %10, align 8
  %73 = extractvalue { ptr, i32 } %71, 1
  store i32 %73, ptr %11, align 4
  br label %98

74:                                               ; preds = %48
  %75 = landingpad { ptr, i32 }
          cleanup
  %76 = extractvalue { ptr, i32 } %75, 0
  store ptr %76, ptr %10, align 8
  %77 = extractvalue { ptr, i32 } %75, 1
  store i32 %77, ptr %11, align 4
  br label %97

78:                                               ; preds = %53, %50
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %10, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %11, align 4
  br label %96

82:                                               ; preds = %54
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %10, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %11, align 4
  br label %95

86:                                               ; preds = %59, %56
  %87 = landingpad { ptr, i32 }
          cleanup
  %88 = extractvalue { ptr, i32 } %87, 0
  store ptr %88, ptr %10, align 8
  %89 = extractvalue { ptr, i32 } %87, 1
  store i32 %89, ptr %11, align 4
  br label %94

90:                                               ; preds = %62, %60
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %10, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %11, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br label %94

94:                                               ; preds = %90, %86
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  br label %95

95:                                               ; preds = %94, %82
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  br label %96

96:                                               ; preds = %95, %78
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  br label %97

97:                                               ; preds = %96, %74
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  br label %98

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

99:                                               ; preds = %98, %66
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  br label %417

100:                                              ; preds = %63
  %101 = load double, ptr %6, align 8, !tbaa !9
  store double %101, ptr %15, align 8, !tbaa !9
  br label %384

102:                                              ; preds = %63
  %103 = load double, ptr %7, align 8, !tbaa !9
  store double %103, ptr %15, align 8, !tbaa !9
  br label %384

104:                                              ; preds = %63
  %105 = load double, ptr %7, align 8, !tbaa !9
  %106 = load double, ptr %6, align 8, !tbaa !9
  %107 = call noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %105, double noundef %106)
  store double %107, ptr %15, align 8, !tbaa !9
  br label %384

108:                                              ; preds = %63
  %109 = load double, ptr %7, align 8, !tbaa !9
  %110 = load double, ptr %6, align 8, !tbaa !9
  %111 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %109, double noundef %110)
  store double %111, ptr %15, align 8, !tbaa !9
  br label %384

112:                                              ; preds = %63
  store double 1.000000e+00, ptr %15, align 8, !tbaa !9
  br label %384

113:                                              ; preds = %63, %63
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %114 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
  call void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.10") align 8 %17, ptr noundef nonnull align 8 dereferenceable(864) %114)
  %115 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %116 unwind label %238

116:                                              ; preds = %113
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %16, ptr noundef nonnull align 8 dereferenceable(280) %115)
          to label %117 unwind label %238

117:                                              ; preds = %116
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  %118 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %119 unwind label %242

119:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %120 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
          to label %121 unwind label %246

121:                                              ; preds = %119
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.10") align 8 %19, ptr noundef nonnull align 8 dereferenceable(864) %120)
          to label %122 unwind label %246

122:                                              ; preds = %121
  %123 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %124 unwind label %250

124:                                              ; preds = %122
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %18, ptr noundef nonnull align 8 dereferenceable(280) %123)
          to label %125 unwind label %250

125:                                              ; preds = %124
  %126 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %127 unwind label %254

127:                                              ; preds = %125
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_y_cERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %118, ptr noundef nonnull align 8 dereferenceable(205) %126)
          to label %128 unwind label %254

128:                                              ; preds = %127
  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
  %129 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %130 unwind label %242

130:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %131 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
          to label %132 unwind label %260

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

133:                                              ; preds = %132
  %134 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %135 unwind label %264

135:                                              ; preds = %133
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %20, ptr noundef nonnull align 8 dereferenceable(280) %134)
          to label %136 unwind label %264

136:                                              ; preds = %135
  %137 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %138 unwind label %268

138:                                              ; preds = %136
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_y_dERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %129, ptr noundef nonnull align 8 dereferenceable(205) %137)
          to label %139 unwind label %268

139:                                              ; preds = %138
  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
  %140 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
          to label %141 unwind label %242

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

142:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %143 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
          to label %144 unwind label %274

144:                                              ; preds = %142
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities16trial_grad_lag_xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %22, ptr noundef nonnull align 8 dereferenceable(2025) %143)
          to label %145 unwind label %274

145:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %146 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
          to label %147 unwind label %278

147:                                              ; preds = %145
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities16trial_grad_lag_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %23, ptr noundef nonnull align 8 dereferenceable(2025) %146)
          to label %148 unwind label %278

148:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %149 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
          to label %150 unwind label %282

150:                                              ; preds = %148
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.10") align 8 %26, ptr noundef nonnull align 8 dereferenceable(864) %149)
          to label %151 unwind label %282

151:                                              ; preds = %150
  %152 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %153 unwind label %286

153:                                              ; preds = %151
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %25, ptr noundef nonnull align 8 dereferenceable(280) %152)
          to label %154 unwind label %286

154:                                              ; preds = %153
  %155 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %156 unwind label %290

156:                                              ; preds = %154
  %157 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %155)
          to label %158 unwind label %290

158:                                              ; preds = %156
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef %157)
          to label %159 unwind label %290

159:                                              ; preds = %158
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  %160 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %161 unwind label %296

161:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %162 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
          to label %163 unwind label %300

163:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %164 = load ptr, ptr %8, align 8, !tbaa !5
  %165 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %164)
          to label %166 unwind label %304

166:                                              ; preds = %163
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %28, ptr noundef nonnull align 8 dereferenceable(280) %165)
          to label %167 unwind label %304

167:                                              ; preds = %166
  %168 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %169 unwind label %308

169:                                              ; preds = %167
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22trial_jac_cT_times_vecERKNS_6VectorE(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %27, ptr noundef nonnull align 8 dereferenceable(2025) %162, ptr noundef nonnull align 8 dereferenceable(205) %168)
          to label %170 unwind label %308

170:                                              ; preds = %169
  %171 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %172 unwind label %312

172:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %173 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
          to label %174 unwind label %316

174:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %175 = load ptr, ptr %8, align 8, !tbaa !5
  %176 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %175)
          to label %177 unwind label %320

177:                                              ; preds = %174
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %30, ptr noundef nonnull align 8 dereferenceable(280) %176)
          to label %178 unwind label %320

178:                                              ; preds = %177
  %179 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %180 unwind label %324

180:                                              ; preds = %178
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22trial_jac_dT_times_vecERKNS_6VectorE(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %29, ptr noundef nonnull align 8 dereferenceable(2025) %173, ptr noundef nonnull align 8 dereferenceable(205) %179)
          to label %181 unwind label %324

181:                                              ; preds = %180
  %182 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %183 unwind label %328

183:                                              ; preds = %181
  invoke void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205) %160, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %171, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %182, double noundef 0.000000e+00)
          to label %184 unwind label %328

184:                                              ; preds = %183
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %185 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %186 unwind label %339

186:                                              ; preds = %184
  %187 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %185)
          to label %188 unwind label %339

188:                                              ; preds = %186
  %189 = call double @pow(double noundef %187, double noundef 2.000000e+00) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %190 = load ptr, ptr %8, align 8, !tbaa !5
  %191 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %190)
          to label %192 unwind label %343

192:                                              ; preds = %188
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %32, ptr noundef nonnull align 8 dereferenceable(280) %191)
          to label %193 unwind label %343

193:                                              ; preds = %192
  %194 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %195 unwind label %347

195:                                              ; preds = %193
  %196 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %194)
          to label %197 unwind label %347

197:                                              ; preds = %195
  %198 = call double @pow(double noundef %196, double noundef 2.000000e+00) #7
  %199 = fadd double %189, %198
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  store double %199, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %200 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %201 unwind label %352

201:                                              ; preds = %197
  %202 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %203 unwind label %352

203:                                              ; preds = %201
  %204 = invoke noundef double @_ZNK10SimTKIpopt6Vector3DotERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %200, ptr noundef nonnull align 8 dereferenceable(205) %202)
          to label %205 unwind label %352

205:                                              ; preds = %203
  %206 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %207 unwind label %352

207:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %208 = load ptr, ptr %8, align 8, !tbaa !5
  %209 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %208)
          to label %210 unwind label %356

210:                                              ; preds = %207
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %34, ptr noundef nonnull align 8 dereferenceable(280) %209)
          to label %211 unwind label %356

211:                                              ; preds = %210
  %212 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %213 unwind label %360

213:                                              ; preds = %211
  %214 = invoke noundef double @_ZNK10SimTKIpopt6Vector3DotERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %206, ptr noundef nonnull align 8 dereferenceable(205) %212)
          to label %215 unwind label %360

215:                                              ; preds = %213
  %216 = fsub double %204, %214
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  store double %216, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %217 = load double, ptr %33, align 8, !tbaa !9
  %218 = fneg double %217
  %219 = load double, ptr %31, align 8, !tbaa !9
  %220 = fdiv double %218, %219
  store double %220, ptr %35, align 8, !tbaa !9
  %221 = getelementptr inbounds %"class.SimTKIpopt::BacktrackingLineSearch", ptr %38, i32 0, i32 2
  %222 = load i32, ptr %221, align 8, !tbaa !11
  %223 = icmp eq i32 %222, 6
  br i1 %223, label %224, label %369

224:                                              ; preds = %215
  %225 = load double, ptr %6, align 8, !tbaa !9
  %226 = load double, ptr %7, align 8, !tbaa !9
  %227 = invoke noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %225, double noundef %226)
          to label %228 unwind label %365

228:                                              ; preds = %224
  %229 = load double, ptr %35, align 8, !tbaa !9
  %230 = load double, ptr %6, align 8, !tbaa !9
  %231 = load double, ptr %7, align 8, !tbaa !9
  %232 = invoke noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %230, double noundef %231)
          to label %233 unwind label %365

233:                                              ; preds = %228
  %234 = invoke noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %229, double noundef %232)
          to label %235 unwind label %365

235:                                              ; preds = %233
  %236 = invoke noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %227, double noundef %234)
          to label %237 unwind label %365

237:                                              ; preds = %235
  store double %236, ptr %15, align 8, !tbaa !9
  br label %375

238:                                              ; preds = %116, %113
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %10, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %11, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %383

242:                                              ; preds = %141, %139, %128, %117
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %10, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %11, align 4
  br label %382

246:                                              ; preds = %121, %119
  %247 = landingpad { ptr, i32 }
          cleanup
  %248 = extractvalue { ptr, i32 } %247, 0
  store ptr %248, ptr %10, align 8
  %249 = extractvalue { ptr, i32 } %247, 1
  store i32 %249, ptr %11, align 4
  br label %259

250:                                              ; preds = %124, %122
  %251 = landingpad { ptr, i32 }
          cleanup
  %252 = extractvalue { ptr, i32 } %251, 0
  store ptr %252, ptr %10, align 8
  %253 = extractvalue { ptr, i32 } %251, 1
  store i32 %253, ptr %11, align 4
  br label %258

254:                                              ; preds = %127, %125
  %255 = landingpad { ptr, i32 }
          cleanup
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %10, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %11, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  br label %258

258:                                              ; preds = %254, %250
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br label %259

259:                                              ; preds = %258, %246
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %382

260:                                              ; preds = %132, %130
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %10, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %11, align 4
  br label %273

264:                                              ; preds = %135, %133
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %10, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %11, align 4
  br label %272

268:                                              ; preds = %138, %136
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %10, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %11, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br label %272

272:                                              ; preds = %268, %264
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br label %273

273:                                              ; preds = %272, %260
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %382

274:                                              ; preds = %144, %142
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %10, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %11, align 4
  br label %381

278:                                              ; preds = %147, %145
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %10, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %11, align 4
  br label %380

282:                                              ; preds = %150, %148
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %10, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %11, align 4
  br label %295

286:                                              ; preds = %153, %151
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %10, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %11, align 4
  br label %294

290:                                              ; preds = %158, %156, %154
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %10, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %11, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  br label %294

294:                                              ; preds = %290, %286
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br label %295

295:                                              ; preds = %294, %282
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  br label %379

296:                                              ; preds = %159
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %10, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %11, align 4
  br label %378

300:                                              ; preds = %161
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %10, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %11, align 4
  br label %338

304:                                              ; preds = %166, %163
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %10, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %11, align 4
  br label %337

308:                                              ; preds = %169, %167
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %10, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %11, align 4
  br label %336

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

316:                                              ; preds = %172
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %10, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %11, align 4
  br label %334

320:                                              ; preds = %177, %174
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %10, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %11, align 4
  br label %333

324:                                              ; preds = %180, %178
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %10, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %11, align 4
  br label %332

328:                                              ; preds = %183, %181
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %10, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %11, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  br label %332

332:                                              ; preds = %328, %324
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br label %333

333:                                              ; preds = %332, %320
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  br label %334

334:                                              ; preds = %333, %316
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  br label %335

335:                                              ; preds = %334, %312
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  br label %336

336:                                              ; preds = %335, %308
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br label %337

337:                                              ; preds = %336, %304
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %338

338:                                              ; preds = %337, %300
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %378

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

343:                                              ; preds = %192, %188
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %10, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %11, align 4
  br label %351

347:                                              ; preds = %195, %193
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %10, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %11, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #7
  br label %351

351:                                              ; preds = %347, %343
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %377

352:                                              ; preds = %205, %203, %201, %197
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %10, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %11, align 4
  br label %376

356:                                              ; preds = %210, %207
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %10, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %11, align 4
  br label %364

360:                                              ; preds = %213, %211
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %10, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %11, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #7
  br label %364

364:                                              ; preds = %360, %356
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %376

365:                                              ; preds = %372, %369, %235, %233, %228, %224
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %10, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  br label %376

369:                                              ; preds = %215
  %370 = load double, ptr %35, align 8, !tbaa !9
  %371 = invoke noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 0.000000e+00, double noundef %370)
          to label %372 unwind label %365

372:                                              ; preds = %369
  %373 = invoke noundef double @_ZN10SimTKIpopt3MinEdd(double noundef 1.000000e+00, double noundef %371)
          to label %374 unwind label %365

374:                                              ; preds = %372
  store double %373, ptr %15, align 8, !tbaa !9
  br label %375

375:                                              ; preds = %374, %237
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  br label %384

376:                                              ; preds = %365, %364, %352
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  br label %377

377:                                              ; preds = %376, %351, %339
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %378

378:                                              ; preds = %377, %338, %296
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  br label %379

379:                                              ; preds = %378, %295
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  br label %380

380:                                              ; preds = %379, %278
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  br label %381

381:                                              ; preds = %380, %274
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %382

382:                                              ; preds = %381, %273, %259, %242
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  br label %383

383:                                              ; preds = %382, %238
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  br label %416

384:                                              ; preds = %375, %112, %108, %104, %102, %100, %63
  %385 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
  %386 = load double, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %387 = load ptr, ptr %8, align 8, !tbaa !5
  %388 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %387)
  call void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %36, ptr noundef nonnull align 8 dereferenceable(280) %388)
  %389 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %390 unwind label %402

390:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  %391 = load ptr, ptr %8, align 8, !tbaa !5
  %392 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %391)
          to label %393 unwind label %406

393:                                              ; preds = %390
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %37, ptr noundef nonnull align 8 dereferenceable(280) %392)
          to label %394 unwind label %406

394:                                              ; preds = %393
  %395 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %396 unwind label %410

396:                                              ; preds = %394
  invoke void @_ZN10SimTKIpopt9IpoptData29SetTrialEqMultipliersFromStepEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(864) %385, double noundef %386, ptr noundef nonnull align 8 dereferenceable(205) %389, ptr noundef nonnull align 8 dereferenceable(205) %395)
          to label %397 unwind label %410

397:                                              ; preds = %396
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  %398 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
  %399 = load double, ptr %6, align 8, !tbaa !9
  call void @_ZN10SimTKIpopt9IpoptData21Set_info_alpha_primalEd(ptr noundef nonnull align 8 dereferenceable(864) %398, double noundef %399)
  %400 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %38)
  %401 = load double, ptr %7, align 8, !tbaa !9
  call void @_ZN10SimTKIpopt9IpoptData19Set_info_alpha_dualEd(ptr noundef nonnull align 8 dereferenceable(864) %400, double noundef %401)
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  ret void

402:                                              ; preds = %384
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %10, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %11, align 4
  br label %415

406:                                              ; preds = %393, %390
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %10, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %11, align 4
  br label %414

410:                                              ; preds = %396, %394
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %10, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %11, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #7
  br label %414

414:                                              ; preds = %410, %406
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  br label %415

415:                                              ; preds = %414, %402
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %416

416:                                              ; preds = %415, %383
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %417

417:                                              ; preds = %416, %99
  %418 = load ptr, ptr %10, align 8
  %419 = load i32, ptr %11, align 4
  %420 = insertvalue { ptr, i32 } poison, ptr %418, 0
  %421 = insertvalue { ptr, i32 } %420, i32 %419, 1
  resume { ptr, i32 } %421
}

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

declare void @_ZN10SimTKIpopt9IpoptData32SetTrialBoundMultipliersFromStepEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(864), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) #3

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

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

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

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities16trial_grad_lag_xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #3

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities16trial_grad_lag_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205), double noundef, ptr noundef nonnull align 8 dereferenceable(205), double noundef, ptr noundef nonnull align 8 dereferenceable(205), double noundef) #5 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22trial_jac_cT_times_vecERKNS_6VectorE(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8, ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(205)) #3

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22trial_jac_dT_times_vecERKNS_6VectorE(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8, ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(205)) #3

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

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

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

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

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

declare void @_ZN10SimTKIpopt9IpoptData29SetTrialEqMultipliersFromStepEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(864), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) #3

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 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 #5 = { 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 #6 = { 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 #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 = !{!"double", !7, i64 0}
!11 = !{!12, !22, i64 64}
!12 = !{!"_ZTSN10SimTKIpopt22BacktrackingLineSearchE", !13, i64 0, !10, i64 56, !22, i64 64, !10, i64 72, !16, i64 80, !21, i64 84, !21, i64 85, !21, i64 86, !10, i64 88, !10, i64 96, !10, i64 104, !16, i64 112, !16, i64 116, !21, i64 120, !21, i64 121, !16, i64 124, !16, i64 128, !10, i64 136, !23, i64 144, !23, i64 152, !10, i64 160, !23, i64 168, !16, i64 176, !21, i64 180, !21, i64 181, !21, i64 182, !21, i64 183, !16, i64 184, !16, i64 188, !21, i64 192, !24, i64 200, !25, i64 208, !26, i64 216}
!13 = !{!"_ZTSN10SimTKIpopt10LineSearchE", !14, i64 0}
!14 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !15, i64 0, !17, i64 16, !18, i64 24, !19, i64 32, !20, i64 40, !21, i64 48}
!15 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !16, i64 8}
!16 = !{!"int", !7, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!18 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !6, i64 0}
!19 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !6, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !6, i64 0}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt22BacktrackingLineSearch13AlphaForYEnumE", !7, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEE", !6, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEEE", !6, i64 0}
!25 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEEE", !6, i64 0}
!26 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEEE", !6, i64 0}


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

%"class.SimTKIpopt::SmartPtr.40" = type { ptr }
%"class.SimTKIpopt::SmartPtr.10" = type { ptr }
%"class.SimTKIpopt::SmartPtr.51" = type { ptr }
%"class.SimTKIpopt::SmartPtr.39" = type { ptr }

; 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(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10SimTKIpopt22BacktrackingLineSearch15PerformDualStepEddRNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(224) %0, double noundef %1, double noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %6 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %7 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %8 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %9 = alloca %"class.SimTKIpopt::SmartPtr.40", align 8
  %10 = alloca %"class.SimTKIpopt::SmartPtr.10", align 8
  %11 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %12 = alloca %"class.SimTKIpopt::SmartPtr.10", align 8
  %13 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %14 = alloca %"class.SimTKIpopt::SmartPtr.10", align 8
  %15 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %16 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %17 = alloca %"class.SimTKIpopt::SmartPtr.39", align 8
  %18 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %19 = alloca %"class.SimTKIpopt::SmartPtr.10", align 8
  %20 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %21 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %22 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %23 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %24 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %25 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %26 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %27 = alloca %"class.SimTKIpopt::SmartPtr.51", align 8
  %28 = tail call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #6
  %29 = tail call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  call void @_ZNK10SimTKIpopt14IteratesVector3z_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %5, ptr noundef nonnull align 8 dereferenceable(280) %29)
  %30 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  %31 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3z_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %6, ptr noundef nonnull align 8 dereferenceable(280) %31)
          to label %32 unwind label %43

32:                                               ; preds = %4
  %33 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  %34 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_LEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %7, ptr noundef nonnull align 8 dereferenceable(280) %34)
          to label %35 unwind label %45

35:                                               ; preds = %32
  %36 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  %37 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3v_UEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %8, ptr noundef nonnull align 8 dereferenceable(280) %37)
          to label %38 unwind label %47

38:                                               ; preds = %35
  %39 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
  invoke void @_ZN10SimTKIpopt9IpoptData32SetTrialBoundMultipliersFromStepEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(864) %28, double noundef %2, ptr noundef nonnull align 8 dereferenceable(205) %30, ptr noundef nonnull align 8 dereferenceable(205) %33, ptr noundef nonnull align 8 dereferenceable(205) %36, ptr noundef nonnull align 8 dereferenceable(205) %39)
          to label %40 unwind label %49

40:                                               ; preds = %38
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  %41 = getelementptr inbounds i8, ptr %0, i64 64
  %42 = load i32, ptr %41, align 8, !tbaa !5
  switch i32 %42, label %219 [
    i32 0, label %54
    i32 1, label %55
    i32 2, label %56
    i32 3, label %58
    i32 4, label %60
    i32 5, label %61
    i32 6, label %61
  ]

43:                                               ; preds = %4
  %44 = landingpad { ptr, i32 }
          cleanup
  br label %53

45:                                               ; preds = %32
  %46 = landingpad { ptr, i32 }
          cleanup
  br label %52

47:                                               ; preds = %35
  %48 = landingpad { ptr, i32 }
          cleanup
  br label %51

49:                                               ; preds = %38
  %50 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #6
  br label %51

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

52:                                               ; preds = %51, %45
  %.pn.pn = phi { ptr, i32 } [ %.pn, %51 ], [ %46, %45 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  br label %53

53:                                               ; preds = %52, %43
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %52 ], [ %44, %43 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  br label %234

54:                                               ; preds = %40
  br label %219

55:                                               ; preds = %40
  br label %219

56:                                               ; preds = %40
  %57 = call noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %2, double noundef %1)
  br label %219

58:                                               ; preds = %40
  %59 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %2, double noundef %1)
  br label %219

60:                                               ; preds = %40
  br label %219

61:                                               ; preds = %40, %40
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  %62 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZNK10SimTKIpopt9IpoptData5trialEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.10") align 8 %10, ptr noundef nonnull align 8 dereferenceable(864) %62)
  %63 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
  invoke void @_ZNK10SimTKIpopt14IteratesVector16MakeNewContainerEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.40") align 8 %9, ptr noundef nonnull align 8 dereferenceable(280) %63)
          to label %64 unwind label %143

64:                                               ; preds = %61
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  %65 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  %66 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %67 unwind label %147

67:                                               ; preds = %64
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.10") align 8 %12, ptr noundef nonnull align 8 dereferenceable(864) %66)
          to label %68 unwind label %147

68:                                               ; preds = %67
  %69 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %11, ptr noundef nonnull align 8 dereferenceable(280) %69)
          to label %70 unwind label %149

70:                                               ; preds = %68
  %71 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_y_cERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %65, ptr noundef nonnull align 8 dereferenceable(205) %71)
          to label %72 unwind label %151

72:                                               ; preds = %70
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  %73 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  %74 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %75 unwind label %155

75:                                               ; preds = %72
  invoke void @_ZNK10SimTKIpopt9IpoptData4currEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.10") align 8 %14, ptr noundef nonnull align 8 dereferenceable(864) %74)
          to label %76 unwind label %155

76:                                               ; preds = %75
  %77 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %13, ptr noundef nonnull align 8 dereferenceable(280) %77)
          to label %78 unwind label %157

78:                                               ; preds = %76
  %79 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  invoke void @_ZN10SimTKIpopt14IteratesVector7Set_y_dERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(280) %73, ptr noundef nonnull align 8 dereferenceable(205) %79)
          to label %80 unwind label %159

80:                                               ; preds = %78
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  %81 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %82 unwind label %145

82:                                               ; preds = %80
  invoke void @_ZN10SimTKIpopt9IpoptData9set_trialERNS_8SmartPtrINS_14IteratesVectorEEE(ptr noundef nonnull align 8 dereferenceable(864) %81, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %83 unwind label %145

83:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  %84 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %85 unwind label %163

85:                                               ; preds = %83
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities16trial_grad_lag_xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %15, ptr noundef nonnull align 8 dereferenceable(2025) %84)
          to label %86 unwind label %163

86:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  %87 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %88 unwind label %165

88:                                               ; preds = %86
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities16trial_grad_lag_sEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %16, ptr noundef nonnull align 8 dereferenceable(2025) %87)
          to label %89 unwind label %165

89:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #6
  %90 = invoke noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %91 unwind label %167

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

92:                                               ; preds = %91
  %93 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
  invoke void @_ZNK10SimTKIpopt14IteratesVector1xEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %18, ptr noundef nonnull align 8 dereferenceable(280) %93)
          to label %94 unwind label %169

94:                                               ; preds = %92
  %95 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
  %96 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %95)
          to label %97 unwind label %171

97:                                               ; preds = %94
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %96)
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  %98 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #6
  %99 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %100 unwind label %175

100:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  %101 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %21, ptr noundef nonnull align 8 dereferenceable(280) %101)
          to label %102 unwind label %177

102:                                              ; preds = %100
  %103 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22trial_jac_cT_times_vecERKNS_6VectorE(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %20, ptr noundef nonnull align 8 dereferenceable(2025) %99, ptr noundef nonnull align 8 dereferenceable(205) %103)
          to label %104 unwind label %179

104:                                              ; preds = %102
  %105 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  %106 = invoke noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %107 unwind label %181

107:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #6
  %108 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %23, ptr noundef nonnull align 8 dereferenceable(280) %108)
          to label %109 unwind label %183

109:                                              ; preds = %107
  %110 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
  invoke void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22trial_jac_dT_times_vecERKNS_6VectorE(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %22, ptr noundef nonnull align 8 dereferenceable(2025) %106, ptr noundef nonnull align 8 dereferenceable(205) %110)
          to label %111 unwind label %185

111:                                              ; preds = %109
  %112 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
  invoke void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205) %98, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %105, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %112, double noundef 0.000000e+00)
          to label %113 unwind label %187

113:                                              ; preds = %111
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  %114 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
  %115 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %114)
          to label %116 unwind label %195

116:                                              ; preds = %113
  %square = fmul double %115, %115
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #6
  %117 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %24, ptr noundef nonnull align 8 dereferenceable(280) %117)
          to label %118 unwind label %197

118:                                              ; preds = %116
  %119 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
  %120 = invoke noundef double @_ZNK10SimTKIpopt6Vector4Nrm2Ev(ptr noundef nonnull align 8 dereferenceable(205) %119)
          to label %121 unwind label %199

121:                                              ; preds = %118
  %square81 = fmul double %120, %120
  %122 = fadd double %square, %square81
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  %123 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15)
  %124 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
  %125 = invoke noundef double @_ZNK10SimTKIpopt6Vector3DotERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %123, ptr noundef nonnull align 8 dereferenceable(205) %124)
          to label %126 unwind label %202

126:                                              ; preds = %121
  %127 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #6
  %128 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %25, ptr noundef nonnull align 8 dereferenceable(280) %128)
          to label %129 unwind label %204

129:                                              ; preds = %126
  %130 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  %131 = invoke noundef double @_ZNK10SimTKIpopt6Vector3DotERKS0_(ptr noundef nonnull align 8 dereferenceable(205) %127, ptr noundef nonnull align 8 dereferenceable(205) %130)
          to label %132 unwind label %206

132:                                              ; preds = %129
  %133 = fsub double %125, %131
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  %134 = fneg double %133
  %135 = fdiv double %134, %122
  %136 = load i32, ptr %41, align 8, !tbaa !5
  %137 = icmp eq i32 %136, 6
  br i1 %137, label %138, label %209

138:                                              ; preds = %132
  %139 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %1, double noundef %2)
  %140 = call noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %1, double noundef %2)
  %141 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef %135, double noundef %140)
  %142 = call noundef double @_ZN10SimTKIpopt3MinEdd(double noundef %139, double noundef %141)
  br label %212

143:                                              ; preds = %61
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %218

145:                                              ; preds = %82, %80
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %217

147:                                              ; preds = %67, %64
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %154

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

151:                                              ; preds = %70
  %152 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #6
  br label %153

153:                                              ; preds = %151, %149
  %.pn63 = phi { ptr, i32 } [ %152, %151 ], [ %150, %149 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #6
  br label %154

154:                                              ; preds = %153, %147
  %.pn63.pn = phi { ptr, i32 } [ %.pn63, %153 ], [ %148, %147 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  br label %217

155:                                              ; preds = %75, %72
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %162

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

159:                                              ; preds = %78
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  br label %161

161:                                              ; preds = %159, %157
  %.pn66 = phi { ptr, i32 } [ %160, %159 ], [ %158, %157 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #6
  br label %162

162:                                              ; preds = %161, %155
  %.pn66.pn = phi { ptr, i32 } [ %.pn66, %161 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %217

163:                                              ; preds = %85, %83
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %216

165:                                              ; preds = %88, %86
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %215

167:                                              ; preds = %91, %89
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %174

169:                                              ; preds = %92
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %173

171:                                              ; preds = %94
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  br label %173

173:                                              ; preds = %171, %169
  %.pn69 = phi { ptr, i32 } [ %172, %171 ], [ %170, %169 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #6
  br label %174

174:                                              ; preds = %173, %167
  %.pn69.pn = phi { ptr, i32 } [ %.pn69, %173 ], [ %168, %167 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  br label %214

175:                                              ; preds = %97
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %194

177:                                              ; preds = %100
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %193

179:                                              ; preds = %102
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %192

181:                                              ; preds = %104
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %191

183:                                              ; preds = %107
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %190

185:                                              ; preds = %109
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %189

187:                                              ; preds = %111
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #6
  br label %189

189:                                              ; preds = %187, %185
  %.pn72 = phi { ptr, i32 } [ %188, %187 ], [ %186, %185 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #6
  br label %190

190:                                              ; preds = %189, %183
  %.pn72.pn = phi { ptr, i32 } [ %.pn72, %189 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  br label %191

191:                                              ; preds = %190, %181
  %.pn72.pn.pn = phi { ptr, i32 } [ %.pn72.pn, %190 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  br label %192

192:                                              ; preds = %191, %179
  %.pn72.pn.pn.pn = phi { ptr, i32 } [ %.pn72.pn.pn, %191 ], [ %180, %179 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #6
  br label %193

193:                                              ; preds = %192, %177
  %.pn72.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn72.pn.pn.pn, %192 ], [ %178, %177 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  br label %194

194:                                              ; preds = %193, %175
  %.pn72.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn72.pn.pn.pn.pn, %193 ], [ %176, %175 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  br label %213

195:                                              ; preds = %113
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %213

197:                                              ; preds = %116
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %201

199:                                              ; preds = %118
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  br label %201

201:                                              ; preds = %199, %197
  %.pn79 = phi { ptr, i32 } [ %200, %199 ], [ %198, %197 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  br label %213

202:                                              ; preds = %121
  %203 = landingpad { ptr, i32 }
          cleanup
  br label %213

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

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

208:                                              ; preds = %206, %204
  %.pn82 = phi { ptr, i32 } [ %207, %206 ], [ %205, %204 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  br label %213

209:                                              ; preds = %132
  %210 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 0.000000e+00, double noundef %135)
  %211 = call noundef double @_ZN10SimTKIpopt3MinEdd(double noundef 1.000000e+00, double noundef %210)
  br label %212

212:                                              ; preds = %209, %138
  %.058 = phi double [ %142, %138 ], [ %211, %209 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  br label %219

213:                                              ; preds = %195, %201, %208, %202, %194
  %.pn82.pn.pn.pn = phi { ptr, i32 } [ %.pn72.pn.pn.pn.pn.pn, %194 ], [ %.pn79, %201 ], [ %196, %195 ], [ %.pn82, %208 ], [ %203, %202 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  br label %214

214:                                              ; preds = %213, %174
  %.pn82.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn82.pn.pn.pn, %213 ], [ %.pn69.pn, %174 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  br label %215

215:                                              ; preds = %214, %165
  %.pn82.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn82.pn.pn.pn.pn, %214 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  br label %216

216:                                              ; preds = %215, %163
  %.pn82.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn82.pn.pn.pn.pn.pn, %215 ], [ %164, %163 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  br label %217

217:                                              ; preds = %216, %162, %154, %145
  %.pn82.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn82.pn.pn.pn.pn.pn.pn, %216 ], [ %146, %145 ], [ %.pn66.pn, %162 ], [ %.pn63.pn, %154 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14IteratesVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #6
  br label %218

218:                                              ; preds = %217, %143
  %.pn82.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn82.pn.pn.pn.pn.pn.pn.pn, %217 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  br label %234

219:                                              ; preds = %212, %60, %58, %56, %55, %54, %40
  %.159 = phi double [ -1.000000e+00, %40 ], [ %.058, %212 ], [ 1.000000e+00, %60 ], [ %59, %58 ], [ %57, %56 ], [ %2, %55 ], [ %1, %54 ]
  %220 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #6
  %221 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  call void @_ZNK10SimTKIpopt14IteratesVector3y_cEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %26, ptr noundef nonnull align 8 dereferenceable(280) %221)
  %222 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  %223 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14IteratesVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  invoke void @_ZNK10SimTKIpopt14IteratesVector3y_dEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8 %27, ptr noundef nonnull align 8 dereferenceable(280) %223)
          to label %224 unwind label %229

224:                                              ; preds = %219
  %225 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27)
  invoke void @_ZN10SimTKIpopt9IpoptData29SetTrialEqMultipliersFromStepEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(864) %220, double noundef %.159, ptr noundef nonnull align 8 dereferenceable(205) %222, ptr noundef nonnull align 8 dereferenceable(205) %225)
          to label %226 unwind label %231

226:                                              ; preds = %224
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  %227 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZN10SimTKIpopt9IpoptData21Set_info_alpha_primalEd(ptr noundef nonnull align 8 dereferenceable(864) %227, double noundef %1)
  %228 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @_ZN10SimTKIpopt9IpoptData19Set_info_alpha_dualEd(ptr noundef nonnull align 8 dereferenceable(864) %228, double noundef %2)
  ret void

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

231:                                              ; preds = %224
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #6
  br label %233

233:                                              ; preds = %231, %229
  %.pn92 = phi { ptr, i32 } [ %232, %231 ], [ %230, %229 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  br label %234

234:                                              ; preds = %218, %233, %53
  %.pn92.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %53 ], [ %.pn92, %233 ], [ %.pn82.pn.pn.pn.pn.pn.pn.pn.pn, %218 ]
  resume { ptr, i32 } %.pn92.pn.pn
}

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

declare void @_ZN10SimTKIpopt9IpoptData32SetTrialBoundMultipliersFromStepEdRKNS_6VectorES3_S3_S3_(ptr noundef nonnull align 8 dereferenceable(864), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #3

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

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

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

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

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities16trial_grad_lag_xEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #3

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities16trial_grad_lag_sEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8, ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt6Vector13AddTwoVectorsEdRKS0_dS2_d(ptr noundef nonnull align 8 dereferenceable(205), double noundef, ptr noundef nonnull align 8 dereferenceable(205), double noundef, ptr noundef nonnull align 8 dereferenceable(205), double noundef) local_unnamed_addr #5 align 2

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22trial_jac_cT_times_vecERKNS_6VectorE(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8, ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #3

declare void @_ZN10SimTKIpopt25IpoptCalculatedQuantities22trial_jac_dT_times_vecERKNS_6VectorE(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.51") align 8, ptr noundef nonnull align 8 dereferenceable(2025), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #3

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

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

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

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

declare void @_ZN10SimTKIpopt9IpoptData29SetTrialEqMultipliersFromStepEdRKNS_6VectorES3_(ptr noundef nonnull align 8 dereferenceable(864), double noundef, ptr noundef nonnull align 8 dereferenceable(205), ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #3

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 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 #5 = { 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 #6 = { 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 64}
!6 = !{!"_ZTSN10SimTKIpopt22BacktrackingLineSearchE", !7, i64 0, !19, i64 56, !20, i64 64, !19, i64 72, !10, i64 80, !18, i64 84, !18, i64 85, !18, i64 86, !19, i64 88, !19, i64 96, !19, i64 104, !10, i64 112, !10, i64 116, !18, i64 120, !18, i64 121, !10, i64 124, !10, i64 128, !19, i64 136, !21, i64 144, !21, i64 152, !19, i64 160, !21, i64 168, !10, i64 176, !18, i64 180, !18, i64 181, !18, i64 182, !18, i64 183, !10, i64 184, !10, i64 188, !18, i64 192, !22, i64 200, !23, i64 208, !24, i64 216}
!7 = !{!"_ZTSN10SimTKIpopt10LineSearchE", !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 = !{!"_ZTSN10SimTKIpopt22BacktrackingLineSearch13AlphaForYEnumE", !11, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_14IteratesVectorEEE", !14, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_22BacktrackingLSAcceptorEEE", !14, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_16RestorationPhaseEEE", !14, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_16ConvergenceCheckEEE", !14, i64 0}


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