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

; 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.48" = type { ptr }
%"class.SimTKIpopt::SmartPtr.57" = type { ptr }
%"class.SimTKIpopt::SmartPtr.59" = type { ptr }
%"class.SimTKIpopt::SmartPtr" = type { ptr }
%"class.SimTKIpopt::SmartPtr.41" = type { ptr }
%"class.SimTKIpopt::SmartPtr.22" = type { ptr }
%"class.SimTKIpopt::SmartPtr.60" = type { ptr }
%"class.SimTKIpopt::SmartPtr.61" = type { ptr }
%"class.SimTKIpopt::SmartPtr.62" = type { ptr }
%"class.SimTKIpopt::SmartPtr.21" = type { ptr }
%"class.SimTKIpopt::LowRankAugSystemSolver" = type <{ %"class.SimTKIpopt::AugSystemSolver.base", [7 x i8], %"class.SimTKIpopt::SmartPtr.20", i32, [4 x i8], double, i32, [4 x i8], double, i32, [4 x i8], double, i32, i32, double, i32, i32, double, i8, [7 x i8], %"class.SimTKIpopt::SmartPtr.21", %"class.SimTKIpopt::SmartPtr.21", %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.22", %"class.SimTKIpopt::SmartPtr.23", %"class.SimTKIpopt::SmartPtr.24", i32, [4 x i8] }>
%"class.SimTKIpopt::AugSystemSolver.base" = type { %"class.SimTKIpopt::AlgorithmStrategyObject.base" }
%"class.SimTKIpopt::AlgorithmStrategyObject.base" = type <{ %"class.SimTKIpopt::ReferencedObject.base", [4 x i8], %"class.SimTKIpopt::SmartPtr.16", %"class.SimTKIpopt::SmartPtr.17", %"class.SimTKIpopt::SmartPtr.18", %"class.SimTKIpopt::SmartPtr.19", i8 }>
%"class.SimTKIpopt::ReferencedObject.base" = type <{ ptr, i32 }>
%"class.SimTKIpopt::SmartPtr.16" = type { ptr }
%"class.SimTKIpopt::SmartPtr.17" = type { ptr }
%"class.SimTKIpopt::SmartPtr.18" = type { ptr }
%"class.SimTKIpopt::SmartPtr.19" = type { ptr }
%"class.SimTKIpopt::SmartPtr.20" = type { ptr }
%"class.SimTKIpopt::SmartPtr.23" = type { ptr }
%"class.SimTKIpopt::SmartPtr.24" = type { ptr }

@_ZTIN10SimTKIpopt9SymMatrixE = external constant ptr
@_ZTIN10SimTKIpopt22LowRankUpdateSymMatrixE = external constant ptr
@.str.1 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [70 x i8], align 1
@_ZTIN10SimTKIpopt6VectorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundVectorE = external constant ptr
@.str.4 = external hidden unnamed_addr constant [57 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver19UpdateFactorizationEPKNS_9SymMatrixEdPKNS_6VectorEdS6_dRKNS_6MatrixES6_dS9_S6_dRS5_SA_SA_SA_bi(ptr noundef nonnull align 8 dereferenceable(204) %0, ptr noundef %1, double noundef %2, ptr noundef %3, double noundef %4, ptr noundef %5, double noundef %6, ptr noundef nonnull align 8 dereferenceable(69) %7, ptr noundef %8, double noundef %9, ptr noundef nonnull align 8 dereferenceable(69) %10, ptr noundef %11, double noundef %12, ptr noundef nonnull align 8 dereferenceable(205) %13, ptr noundef nonnull align 8 dereferenceable(205) %14, ptr noundef nonnull align 8 dereferenceable(205) %15, ptr noundef nonnull align 8 dereferenceable(205) %16, i1 noundef zeroext %17, i32 noundef %18) #3 align 2 personality ptr @__gxx_personality_v0 {
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca double, align 8
  %24 = alloca ptr, align 8
  %25 = alloca double, align 8
  %26 = alloca ptr, align 8
  %27 = alloca double, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca double, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca double, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i8, align 1
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca %"class.SimTKIpopt::SmartPtr.48", align 8
  %43 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %47 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %48 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %49 = alloca %"class.SimTKIpopt::SmartPtr.48", align 8
  %50 = alloca %"class.SimTKIpopt::SmartPtr.59", align 8
  %51 = alloca %"class.SimTKIpopt::SmartPtr", align 8
  %52 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %53 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %54 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %55 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca %"class.SimTKIpopt::SmartPtr.60", align 8
  %59 = alloca %"class.SimTKIpopt::SmartPtr.61", align 8
  %60 = alloca %"class.SimTKIpopt::SmartPtr.62", align 8
  %61 = alloca i8, align 1
  %62 = alloca i32, align 4
  %63 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %64 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %65 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %66 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %67 = alloca i32, align 4
  %68 = alloca %"class.SimTKIpopt::SmartPtr.62", align 8
  %69 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %70 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %71 = alloca i32, align 4
  %72 = alloca ptr, align 8
  %73 = alloca %"class.SimTKIpopt::SmartPtr.48", align 8
  %74 = alloca %"class.SimTKIpopt::SmartPtr.48", align 8
  %75 = alloca %"class.SimTKIpopt::SmartPtr.60", align 8
  %76 = alloca %"class.SimTKIpopt::SmartPtr.61", align 8
  %77 = alloca %"class.SimTKIpopt::SmartPtr.62", align 8
  %78 = alloca i8, align 1
  store ptr %0, ptr %21, align 8, !tbaa !5
  store ptr %1, ptr %22, align 8, !tbaa !5
  store double %2, ptr %23, align 8, !tbaa !9
  store ptr %3, ptr %24, align 8, !tbaa !5
  store double %4, ptr %25, align 8, !tbaa !9
  store ptr %5, ptr %26, align 8, !tbaa !5
  store double %6, ptr %27, align 8, !tbaa !9
  store ptr %7, ptr %28, align 8, !tbaa !5
  store ptr %8, ptr %29, align 8, !tbaa !5
  store double %9, ptr %30, align 8, !tbaa !9
  store ptr %10, ptr %31, align 8, !tbaa !5
  store ptr %11, ptr %32, align 8, !tbaa !5
  store double %12, ptr %33, align 8, !tbaa !9
  store ptr %13, ptr %34, align 8, !tbaa !5
  store ptr %14, ptr %35, align 8, !tbaa !5
  store ptr %15, ptr %36, align 8, !tbaa !5
  store ptr %16, ptr %37, align 8, !tbaa !5
  %79 = zext i1 %17 to i8
  store i8 %79, ptr %38, align 1, !tbaa !11
  store i32 %18, ptr %39, align 4, !tbaa !13
  %80 = load ptr, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  store i32 0, ptr %40, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %81 = load ptr, ptr %22, align 8, !tbaa !5
  %82 = icmp eq ptr %81, null
  br i1 %82, label %85, label %83

83:                                               ; preds = %19
  %84 = call ptr @__dynamic_cast(ptr %81, ptr @_ZTIN10SimTKIpopt9SymMatrixE, ptr @_ZTIN10SimTKIpopt22LowRankUpdateSymMatrixE, i64 0) #8
  br label %86

85:                                               ; preds = %19
  br label %86

86:                                               ; preds = %85, %83
  %87 = phi ptr [ %84, %83 ], [ null, %85 ]
  store ptr %87, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42)
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %88 unwind label %105

88:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  invoke void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %89 unwind label %109

89:                                               ; preds = %88
  %90 = load double, ptr %23, align 8, !tbaa !9
  %91 = fcmp oeq double %90, 1.000000e+00
  br i1 %91, label %92, label %140

92:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %93 = load ptr, ptr %41, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix4GetVEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.57") align 8 %47, ptr noundef nonnull align 8 dereferenceable(112) %93)
          to label %94 unwind label %113

94:                                               ; preds = %92
  %95 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %96 unwind label %117

96:                                               ; preds = %94
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  %97 = load ptr, ptr %41, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix4GetUEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.57") align 8 %48, ptr noundef nonnull align 8 dereferenceable(112) %97)
          to label %98 unwind label %122

98:                                               ; preds = %96
  %99 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %100 unwind label %126

100:                                              ; preds = %98
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  %101 = load ptr, ptr %41, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix7GetDiagEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.48") align 8 %49, ptr noundef nonnull align 8 dereferenceable(112) %101)
          to label %102 unwind label %131

102:                                              ; preds = %100
  %103 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %104 unwind label %135

104:                                              ; preds = %102
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %140

105:                                              ; preds = %86
  %106 = landingpad { ptr, i32 }
          cleanup
  %107 = extractvalue { ptr, i32 } %106, 0
  store ptr %107, ptr %44, align 8
  %108 = extractvalue { ptr, i32 } %106, 1
  store i32 %108, ptr %45, align 4
  br label %728

109:                                              ; preds = %88
  %110 = landingpad { ptr, i32 }
          cleanup
  %111 = extractvalue { ptr, i32 } %110, 0
  store ptr %111, ptr %44, align 8
  %112 = extractvalue { ptr, i32 } %110, 1
  store i32 %112, ptr %45, align 4
  br label %727

113:                                              ; preds = %92
  %114 = landingpad { ptr, i32 }
          cleanup
  %115 = extractvalue { ptr, i32 } %114, 0
  store ptr %115, ptr %44, align 8
  %116 = extractvalue { ptr, i32 } %114, 1
  store i32 %116, ptr %45, align 4
  br label %121

117:                                              ; preds = %94
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %44, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %45, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  br label %121

121:                                              ; preds = %117, %113
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %726

122:                                              ; preds = %96
  %123 = landingpad { ptr, i32 }
          cleanup
  %124 = extractvalue { ptr, i32 } %123, 0
  store ptr %124, ptr %44, align 8
  %125 = extractvalue { ptr, i32 } %123, 1
  store i32 %125, ptr %45, align 4
  br label %130

126:                                              ; preds = %98
  %127 = landingpad { ptr, i32 }
          cleanup
  %128 = extractvalue { ptr, i32 } %127, 0
  store ptr %128, ptr %44, align 8
  %129 = extractvalue { ptr, i32 } %127, 1
  store i32 %129, ptr %45, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  br label %130

130:                                              ; preds = %126, %122
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  br label %726

131:                                              ; preds = %100
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %44, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %45, align 4
  br label %139

135:                                              ; preds = %102
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %44, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %45, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  br label %139

139:                                              ; preds = %135, %131
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %726

140:                                              ; preds = %104, %89
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %141 = load ptr, ptr %41, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix9P_LowRankEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.59") align 8 %50, ptr noundef nonnull align 8 dereferenceable(112) %141)
          to label %142 unwind label %172

142:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  %143 = load ptr, ptr %41, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix18LowRankVectorSpaceEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr") align 8 %51, ptr noundef nonnull align 8 dereferenceable(112) %143)
          to label %144 unwind label %176

144:                                              ; preds = %142
  %145 = invoke noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %146 unwind label %180

146:                                              ; preds = %144
  br i1 %145, label %147, label %193

147:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  %148 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_6MatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %149 unwind label %184

149:                                              ; preds = %147
  br i1 %148, label %150, label %158

150:                                              ; preds = %149
  %151 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %152 unwind label %184

152:                                              ; preds = %150
  %153 = load ptr, ptr %151, align 8, !tbaa !17
  %154 = getelementptr inbounds ptr, ptr %153, i64 2
  %155 = load ptr, ptr %154, align 8
  %156 = invoke noundef ptr %155(ptr noundef nonnull align 8 dereferenceable(16) %151)
          to label %157 unwind label %184

157:                                              ; preds = %152
  br label %162

158:                                              ; preds = %149
  %159 = load ptr, ptr %34, align 8, !tbaa !5
  %160 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %159)
          to label %161 unwind label %184

161:                                              ; preds = %158
  br label %162

162:                                              ; preds = %161, %157
  %163 = phi ptr [ %156, %157 ], [ %160, %161 ]
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef %163)
          to label %164 unwind label %184

164:                                              ; preds = %162
  %165 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %166 unwind label %188

166:                                              ; preds = %164
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %165, double noundef 0.000000e+00)
          to label %167 unwind label %188

167:                                              ; preds = %166
  %168 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_6VectorEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %169 unwind label %188

169:                                              ; preds = %167
  %170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef %168)
          to label %171 unwind label %188

171:                                              ; preds = %169
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  br label %193

172:                                              ; preds = %140
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %44, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %45, align 4
  br label %725

176:                                              ; preds = %142
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %44, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %45, align 4
  br label %724

180:                                              ; preds = %232, %230, %227, %196, %193, %144
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %44, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %45, align 4
  br label %723

184:                                              ; preds = %162, %158, %152, %150, %147
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %44, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %45, align 4
  br label %192

188:                                              ; preds = %169, %167, %166, %164
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %44, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %45, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  br label %192

192:                                              ; preds = %188, %184
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  br label %723

193:                                              ; preds = %171, %146
  %194 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_6MatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %195 unwind label %180

195:                                              ; preds = %193
  br i1 %194, label %196, label %227

196:                                              ; preds = %195
  %197 = load ptr, ptr %41, align 8, !tbaa !5
  %198 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix11ReducedDiagEv(ptr noundef nonnull align 8 dereferenceable(112) %197)
          to label %199 unwind label %180

199:                                              ; preds = %196
  br i1 %198, label %200, label %227

200:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  %201 = load ptr, ptr %34, align 8, !tbaa !5
  %202 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %201)
          to label %203 unwind label %218

203:                                              ; preds = %200
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef %202)
          to label %204 unwind label %218

204:                                              ; preds = %203
  %205 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %206 unwind label %222

206:                                              ; preds = %204
  %207 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %208 unwind label %222

208:                                              ; preds = %206
  %209 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %210 unwind label %222

210:                                              ; preds = %208
  invoke void @_ZNK10SimTKIpopt6Matrix10MultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %205, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %207, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %209)
          to label %211 unwind label %222

211:                                              ; preds = %210
  %212 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 24
  %213 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_10DiagMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %212)
          to label %214 unwind label %222

214:                                              ; preds = %211
  %215 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %216 unwind label %222

216:                                              ; preds = %214
  invoke void @_ZN10SimTKIpopt10DiagMatrix7SetDiagERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(88) %213, ptr noundef nonnull align 8 dereferenceable(205) %215)
          to label %217 unwind label %222

217:                                              ; preds = %216
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  br label %234

218:                                              ; preds = %203, %200
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %44, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %45, align 4
  br label %226

222:                                              ; preds = %216, %214, %211, %210, %208, %206, %204
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %44, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %45, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  br label %226

226:                                              ; preds = %222, %218
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  br label %723

227:                                              ; preds = %199, %195
  %228 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 24
  %229 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_10DiagMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %228)
          to label %230 unwind label %180

230:                                              ; preds = %227
  %231 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %232 unwind label %180

232:                                              ; preds = %230
  invoke void @_ZN10SimTKIpopt10DiagMatrix7SetDiagERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(88) %229, ptr noundef nonnull align 8 dereferenceable(205) %231)
          to label %233 unwind label %180

233:                                              ; preds = %232
  br label %234

234:                                              ; preds = %233, %217
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %235 unwind label %274

235:                                              ; preds = %234
  %236 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %237 unwind label %278

237:                                              ; preds = %235
  br i1 %236, label %238, label %386

238:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %239 unwind label %282

239:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %240 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %241 unwind label %286

241:                                              ; preds = %239
  %242 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %240)
          to label %243 unwind label %286

243:                                              ; preds = %241
  store i32 %242, ptr %56, align 4, !tbaa !13
  %244 = load ptr, ptr %24, align 8, !tbaa !5
  %245 = load double, ptr %25, align 8, !tbaa !9
  %246 = load ptr, ptr %26, align 8, !tbaa !5
  %247 = load double, ptr %27, align 8, !tbaa !9
  %248 = load ptr, ptr %28, align 8, !tbaa !5
  %249 = load ptr, ptr %29, align 8, !tbaa !5
  %250 = load double, ptr %30, align 8, !tbaa !9
  %251 = load ptr, ptr %31, align 8, !tbaa !5
  %252 = load ptr, ptr %32, align 8, !tbaa !5
  %253 = load double, ptr %33, align 8, !tbaa !9
  %254 = load ptr, ptr %34, align 8, !tbaa !5
  %255 = load ptr, ptr %35, align 8, !tbaa !5
  %256 = load ptr, ptr %36, align 8, !tbaa !5
  %257 = load ptr, ptr %37, align 8, !tbaa !5
  %258 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %259 unwind label %286

259:                                              ; preds = %243
  %260 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 22
  %261 = load i8, ptr %38, align 1, !tbaa !11, !range !19, !noundef !20
  %262 = trunc i8 %261 to i1
  %263 = load i32, ptr %39, align 4, !tbaa !13
  %264 = invoke noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver16SolveMultiVectorEPKNS_6VectorEdS3_dRKNS_6MatrixES3_dS6_S3_dRS2_S7_S7_S7_RKNS_17MultiVectorMatrixERKNS_8SmartPtrIS5_EERNSB_IS8_EESG_SG_bi(ptr noundef nonnull align 8 dereferenceable(204) %80, ptr noundef %244, double noundef %245, ptr noundef %246, double noundef %247, ptr noundef nonnull align 8 dereferenceable(69) %248, ptr noundef %249, double noundef %250, ptr noundef nonnull align 8 dereferenceable(69) %251, ptr noundef %252, double noundef %253, ptr noundef nonnull align 8 dereferenceable(205) %254, ptr noundef nonnull align 8 dereferenceable(205) %255, ptr noundef nonnull align 8 dereferenceable(205) %256, ptr noundef nonnull align 8 dereferenceable(205) %257, ptr noundef nonnull align 8 dereferenceable(128) %258, ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %260, ptr noundef nonnull align 8 dereferenceable(8) %54, i1 noundef zeroext %262, i32 noundef %263)
          to label %265 unwind label %286

265:                                              ; preds = %259
  store i32 %264, ptr %40, align 4, !tbaa !15
  %266 = load i32, ptr %40, align 4, !tbaa !15
  %267 = icmp ne i32 %266, 0
  br i1 %267, label %268, label %290

268:                                              ; preds = %265
  %269 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %80)
          to label %270 unwind label %286

270:                                              ; preds = %268
  %271 = load i32, ptr %40, align 4, !tbaa !15
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %269, i32 noundef 5, i32 noundef 5, ptr noundef @.str.1, i32 noundef %271)
          to label %272 unwind label %286

272:                                              ; preds = %270
  %273 = load i32, ptr %40, align 4, !tbaa !15
  store i32 %273, ptr %20, align 4
  store i32 1, ptr %57, align 4
  br label %376

274:                                              ; preds = %234
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %44, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %45, align 4
  br label %722

278:                                              ; preds = %713, %710, %393, %389, %386, %235
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %44, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %45, align 4
  br label %721

282:                                              ; preds = %238
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %44, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %45, align 4
  br label %385

286:                                              ; preds = %270, %268, %259, %243, %241, %239
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %44, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %45, align 4
  br label %384

290:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %291 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #9
          to label %292 unwind label %342

292:                                              ; preds = %290
  %293 = load i32, ptr %56, align 4, !tbaa !13
  invoke void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20) %291, i32 noundef %293)
          to label %294 unwind label %346

294:                                              ; preds = %292
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef %291)
          to label %295 unwind label %342

295:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  %296 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %297 unwind label %350

297:                                              ; preds = %295
  %298 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseSymMatrixSpace21MakeNewDenseSymMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %296)
          to label %299 unwind label %350

299:                                              ; preds = %297
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef %298)
          to label %300 unwind label %350

300:                                              ; preds = %299
  %301 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %302 unwind label %354

302:                                              ; preds = %300
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(97) %301, double noundef 1.000000e+00)
          to label %303 unwind label %354

303:                                              ; preds = %302
  %304 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %305 unwind label %354

305:                                              ; preds = %303
  %306 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %307 unwind label %354

307:                                              ; preds = %305
  %308 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %309 unwind label %354

309:                                              ; preds = %307
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(97) %304, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %306, ptr noundef nonnull align 8 dereferenceable(128) %308, double noundef 1.000000e+00)
          to label %310 unwind label %354

310:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #8
  %311 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #9
          to label %312 unwind label %358

312:                                              ; preds = %310
  %313 = load i32, ptr %56, align 4, !tbaa !13
  %314 = load i32, ptr %56, align 4, !tbaa !13
  invoke void @_ZN10SimTKIpopt19DenseGenMatrixSpaceC1Eii(ptr noundef nonnull align 8 dereferenceable(20) %311, i32 noundef %313, i32 noundef %314)
          to label %315 unwind label %362

315:                                              ; preds = %312
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef %311)
          to label %316 unwind label %358

316:                                              ; preds = %315
  %317 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %318 unwind label %366

318:                                              ; preds = %316
  %319 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseGenMatrixSpace21MakeNewDenseGenMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %317)
          to label %320 unwind label %366

320:                                              ; preds = %318
  %321 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 20
  %322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef %319)
          to label %323 unwind label %366

323:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #8
  %324 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 20
  %325 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %324)
          to label %326 unwind label %370

326:                                              ; preds = %323
  %327 = invoke noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %328 unwind label %370

328:                                              ; preds = %326
  %329 = invoke noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89) %325, ptr noundef nonnull align 8 dereferenceable(97) %327)
          to label %330 unwind label %370

330:                                              ; preds = %328
  %331 = zext i1 %329 to i8
  store i8 %331, ptr %61, align 1, !tbaa !11
  %332 = load i8, ptr %61, align 1, !tbaa !11, !range !19, !noundef !20
  %333 = trunc i8 %332 to i1
  br i1 %333, label %374, label %334

334:                                              ; preds = %330
  %335 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %80)
          to label %336 unwind label %370

336:                                              ; preds = %334
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %335, i32 noundef 5, i32 noundef 5, ptr noundef @.str.2)
          to label %337 unwind label %370

337:                                              ; preds = %336
  store i32 2, ptr %40, align 4, !tbaa !15
  %338 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 26
  %339 = load i32, ptr %338, align 8, !tbaa !21
  %340 = add nsw i32 %339, 1
  store i32 %340, ptr %338, align 8, !tbaa !21
  %341 = load i32, ptr %40, align 4, !tbaa !15
  store i32 %341, ptr %20, align 4
  store i32 1, ptr %57, align 4
  br label %375

342:                                              ; preds = %294, %290
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %44, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %45, align 4
  br label %383

346:                                              ; preds = %292
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %44, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %45, align 4
  call void @_ZdlPvm(ptr noundef %291, i64 noundef 24) #10
  br label %383

350:                                              ; preds = %299, %297, %295
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %44, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %45, align 4
  br label %382

354:                                              ; preds = %309, %307, %305, %303, %302, %300
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %44, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %45, align 4
  br label %381

358:                                              ; preds = %315, %310
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %44, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %45, align 4
  br label %380

362:                                              ; preds = %312
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %44, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %45, align 4
  call void @_ZdlPvm(ptr noundef %311, i64 noundef 24) #10
  br label %380

366:                                              ; preds = %320, %318, %316
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %44, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %45, align 4
  br label %379

370:                                              ; preds = %336, %334, %328, %326, %323
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %44, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #8
  br label %379

374:                                              ; preds = %330
  store i32 0, ptr %57, align 4
  br label %375

375:                                              ; preds = %374, %337
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  br label %376

376:                                              ; preds = %375, %272
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  %377 = load i32, ptr %57, align 4
  switch i32 %377, label %719 [
    i32 0, label %378
  ]

378:                                              ; preds = %376
  br label %393

379:                                              ; preds = %370, %366
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #8
  br label %380

380:                                              ; preds = %379, %362, %358
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  br label %381

381:                                              ; preds = %380, %354
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  br label %382

382:                                              ; preds = %381, %350
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  br label %383

383:                                              ; preds = %382, %346, %342
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  br label %384

384:                                              ; preds = %383, %286
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %385

385:                                              ; preds = %384, %282
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %721

386:                                              ; preds = %237
  %387 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 22
  %388 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef null)
          to label %389 unwind label %278

389:                                              ; preds = %386
  %390 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 20
  %391 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef null)
          to label %392 unwind label %278

392:                                              ; preds = %389
  br label %393

393:                                              ; preds = %392, %378
  %394 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %395 unwind label %278

395:                                              ; preds = %393
  br i1 %394, label %396, label %710

396:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #8
  %397 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %398 unwind label %434

398:                                              ; preds = %396
  %399 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %397)
          to label %400 unwind label %434

400:                                              ; preds = %398
  store i32 %399, ptr %62, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #8
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %401 unwind label %438

401:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #8
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %402 unwind label %442

402:                                              ; preds = %401
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %403 unwind label %446

403:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %404 unwind label %450

404:                                              ; preds = %403
  %405 = load ptr, ptr %24, align 8, !tbaa !5
  %406 = load double, ptr %25, align 8, !tbaa !9
  %407 = load ptr, ptr %26, align 8, !tbaa !5
  %408 = load double, ptr %27, align 8, !tbaa !9
  %409 = load ptr, ptr %28, align 8, !tbaa !5
  %410 = load ptr, ptr %29, align 8, !tbaa !5
  %411 = load double, ptr %30, align 8, !tbaa !9
  %412 = load ptr, ptr %31, align 8, !tbaa !5
  %413 = load ptr, ptr %32, align 8, !tbaa !5
  %414 = load double, ptr %33, align 8, !tbaa !9
  %415 = load ptr, ptr %34, align 8, !tbaa !5
  %416 = load ptr, ptr %35, align 8, !tbaa !5
  %417 = load ptr, ptr %36, align 8, !tbaa !5
  %418 = load ptr, ptr %37, align 8, !tbaa !5
  %419 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %420 unwind label %454

420:                                              ; preds = %404
  %421 = load i8, ptr %38, align 1, !tbaa !11, !range !19, !noundef !20
  %422 = trunc i8 %421 to i1
  %423 = load i32, ptr %39, align 4, !tbaa !13
  %424 = invoke noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver16SolveMultiVectorEPKNS_6VectorEdS3_dRKNS_6MatrixES3_dS6_S3_dRS2_S7_S7_S7_RKNS_17MultiVectorMatrixERKNS_8SmartPtrIS5_EERNSB_IS8_EESG_SG_bi(ptr noundef nonnull align 8 dereferenceable(204) %80, ptr noundef %405, double noundef %406, ptr noundef %407, double noundef %408, ptr noundef nonnull align 8 dereferenceable(69) %409, ptr noundef %410, double noundef %411, ptr noundef nonnull align 8 dereferenceable(69) %412, ptr noundef %413, double noundef %414, ptr noundef nonnull align 8 dereferenceable(205) %415, ptr noundef nonnull align 8 dereferenceable(205) %416, ptr noundef nonnull align 8 dereferenceable(205) %417, ptr noundef nonnull align 8 dereferenceable(205) %418, ptr noundef nonnull align 8 dereferenceable(128) %419, ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %65, i1 noundef zeroext %422, i32 noundef %423)
          to label %425 unwind label %454

425:                                              ; preds = %420
  store i32 %424, ptr %40, align 4, !tbaa !15
  %426 = load i32, ptr %40, align 4, !tbaa !15
  %427 = icmp ne i32 %426, 0
  br i1 %427, label %428, label %458

428:                                              ; preds = %425
  %429 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %80)
          to label %430 unwind label %454

430:                                              ; preds = %428
  %431 = load i32, ptr %40, align 4, !tbaa !15
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %429, i32 noundef 5, i32 noundef 5, ptr noundef @.str.3, i32 noundef %431)
          to label %432 unwind label %454

432:                                              ; preds = %430
  %433 = load i32, ptr %40, align 4, !tbaa !15
  store i32 %433, ptr %20, align 4
  store i32 1, ptr %57, align 4
  br label %696

434:                                              ; preds = %398, %396
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %44, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %45, align 4
  br label %709

438:                                              ; preds = %400
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %44, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %45, align 4
  br label %708

442:                                              ; preds = %401
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %44, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %45, align 4
  br label %707

446:                                              ; preds = %402
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %44, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %45, align 4
  br label %706

450:                                              ; preds = %403
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %44, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %45, align 4
  br label %705

454:                                              ; preds = %465, %462, %458, %430, %428, %420, %404
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %44, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %45, align 4
  br label %704

458:                                              ; preds = %425
  %459 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 22
  %460 = invoke noundef zeroext i1 @_ZN10SimTKIpopt6IsNullINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %459)
          to label %461 unwind label %454

461:                                              ; preds = %458
  br i1 %460, label %462, label %468

462:                                              ; preds = %461
  %463 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 23
  %464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %463, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %465 unwind label %454

465:                                              ; preds = %462
  %466 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %467 unwind label %454

467:                                              ; preds = %465
  br label %610

468:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #8
  %469 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 22
  %470 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %469)
          to label %471 unwind label %523

471:                                              ; preds = %468
  %472 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %470)
          to label %473 unwind label %523

473:                                              ; preds = %471
  store i32 %472, ptr %67, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  %474 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #9
          to label %475 unwind label %527

475:                                              ; preds = %473
  %476 = load i32, ptr %67, align 4, !tbaa !13
  %477 = load i32, ptr %62, align 4, !tbaa !13
  invoke void @_ZN10SimTKIpopt19DenseGenMatrixSpaceC1Eii(ptr noundef nonnull align 8 dereferenceable(20) %474, i32 noundef %476, i32 noundef %477)
          to label %478 unwind label %531

478:                                              ; preds = %475
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef %474)
          to label %479 unwind label %527

479:                                              ; preds = %478
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  %480 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %481 unwind label %535

481:                                              ; preds = %479
  %482 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseGenMatrixSpace21MakeNewDenseGenMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %480)
          to label %483 unwind label %535

483:                                              ; preds = %481
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef %482)
          to label %484 unwind label %535

484:                                              ; preds = %483
  %485 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %486 unwind label %539

486:                                              ; preds = %484
  %487 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %488 unwind label %539

488:                                              ; preds = %486
  %489 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %490 unwind label %539

490:                                              ; preds = %488
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(89) %485, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %487, ptr noundef nonnull align 8 dereferenceable(128) %489, double noundef 0.000000e+00)
          to label %491 unwind label %539

491:                                              ; preds = %490
  %492 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 20
  %493 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %492)
          to label %494 unwind label %539

494:                                              ; preds = %491
  %495 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %496 unwind label %539

496:                                              ; preds = %494
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveMatrixERS0_(ptr noundef nonnull align 8 dereferenceable(89) %493, ptr noundef nonnull align 8 dereferenceable(89) %495)
          to label %497 unwind label %539

497:                                              ; preds = %496
  %498 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 23
  %499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %498, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %500 unwind label %539

500:                                              ; preds = %497
  %501 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 23
  %502 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %501)
          to label %503 unwind label %539

503:                                              ; preds = %500
  %504 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 22
  %505 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %504)
          to label %506 unwind label %539

506:                                              ; preds = %503
  %507 = invoke noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %508 unwind label %539

508:                                              ; preds = %506
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %502, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %505, ptr noundef nonnull align 8 dereferenceable(69) %507, double noundef 1.000000e+00)
          to label %509 unwind label %539

509:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  %510 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %511 unwind label %543

511:                                              ; preds = %509
  invoke void @_ZNK10SimTKIpopt17MultiVectorMatrix24MakeNewMultiVectorMatrixEv(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.22") align 8 %70, ptr noundef nonnull align 8 dereferenceable(128) %510)
          to label %512 unwind label %543

512:                                              ; preds = %511
  %513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %514 unwind label %547

514:                                              ; preds = %512
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #8
  store i32 0, ptr %71, align 4, !tbaa !13
  br label %515

515:                                              ; preds = %586, %514
  %516 = load i32, ptr %71, align 4, !tbaa !13
  %517 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %518 unwind label %552

518:                                              ; preds = %515
  %519 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %517)
          to label %520 unwind label %552

520:                                              ; preds = %518
  %521 = icmp slt i32 %516, %519
  br i1 %521, label %556, label %522

522:                                              ; preds = %520
  store i32 2, ptr %57, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  br label %605

523:                                              ; preds = %471, %468
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %44, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %45, align 4
  br label %609

527:                                              ; preds = %478, %473
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %44, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %45, align 4
  br label %608

531:                                              ; preds = %475
  %532 = landingpad { ptr, i32 }
          cleanup
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %44, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %45, align 4
  call void @_ZdlPvm(ptr noundef %474, i64 noundef 24) #10
  br label %608

535:                                              ; preds = %483, %481, %479
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %44, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %45, align 4
  br label %607

539:                                              ; preds = %508, %506, %503, %500, %497, %496, %494, %491, %490, %488, %486, %484
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %44, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %45, align 4
  br label %606

543:                                              ; preds = %511, %509
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %44, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %45, align 4
  br label %551

547:                                              ; preds = %512
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %44, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %45, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #8
  br label %551

551:                                              ; preds = %547, %543
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  br label %606

552:                                              ; preds = %518, %515
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %44, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %45, align 4
  br label %604

556:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  %557 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 23
  %558 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %557)
          to label %559 unwind label %567

559:                                              ; preds = %556
  %560 = load i32, ptr %71, align 4, !tbaa !13
  invoke void @_ZNK10SimTKIpopt17MultiVectorMatrix9GetVectorEi(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.48") align 8 %73, ptr noundef nonnull align 8 dereferenceable(128) %558, i32 noundef %560)
          to label %561 unwind label %567

561:                                              ; preds = %559
  %562 = invoke noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6VectorEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %563 unwind label %571

563:                                              ; preds = %561
  %564 = icmp eq ptr %562, null
  br i1 %564, label %575, label %565

565:                                              ; preds = %563
  %566 = call ptr @__dynamic_cast(ptr %562, ptr @_ZTIN10SimTKIpopt6VectorE, ptr @_ZTIN10SimTKIpopt14CompoundVectorE, i64 0) #8
  br label %576

567:                                              ; preds = %559, %556
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %44, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %45, align 4
  br label %589

571:                                              ; preds = %561
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %44, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %45, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #8
  br label %589

575:                                              ; preds = %563
  br label %576

576:                                              ; preds = %575, %565
  %577 = phi ptr [ %566, %565 ], [ null, %575 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  store ptr %577, ptr %72, align 8, !tbaa !5
  %578 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %579 unwind label %590

579:                                              ; preds = %576
  %580 = load i32, ptr %71, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #8
  %581 = load ptr, ptr %72, align 8, !tbaa !5
  invoke void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind writable sret(%"class.SimTKIpopt::SmartPtr.48") align 8 %74, ptr noundef nonnull align 8 dereferenceable(265) %581, i32 noundef 0)
          to label %582 unwind label %594

582:                                              ; preds = %579
  %583 = invoke noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %74)
          to label %584 unwind label %598

584:                                              ; preds = %582
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix9SetVectorEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(128) %578, i32 noundef %580, ptr noundef nonnull align 8 dereferenceable(205) %583)
          to label %585 unwind label %598

585:                                              ; preds = %584
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  br label %586

586:                                              ; preds = %585
  %587 = load i32, ptr %71, align 4, !tbaa !13
  %588 = add nsw i32 %587, 1
  store i32 %588, ptr %71, align 4, !tbaa !13
  br label %515, !llvm.loop !35

589:                                              ; preds = %571, %567
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  br label %603

590:                                              ; preds = %576
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %44, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %45, align 4
  br label %603

594:                                              ; preds = %579
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %44, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %45, align 4
  br label %602

598:                                              ; preds = %584, %582
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %44, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %45, align 4
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  br label %602

602:                                              ; preds = %598, %594
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  br label %603

603:                                              ; preds = %602, %590, %589
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  br label %604

604:                                              ; preds = %603, %552
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  br label %606

605:                                              ; preds = %522
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  br label %610

606:                                              ; preds = %604, %551, %539
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  br label %607

607:                                              ; preds = %606, %535
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  br label %608

608:                                              ; preds = %607, %531, %527
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  br label %609

609:                                              ; preds = %608, %523
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  br label %704

610:                                              ; preds = %605, %467
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #8
  %611 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #9
          to label %612 unwind label %662

612:                                              ; preds = %610
  %613 = load i32, ptr %62, align 4, !tbaa !13
  invoke void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20) %611, i32 noundef %613)
          to label %614 unwind label %666

614:                                              ; preds = %612
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef %611)
          to label %615 unwind label %662

615:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #8
  %616 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %617 unwind label %670

617:                                              ; preds = %615
  %618 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseSymMatrixSpace21MakeNewDenseSymMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %616)
          to label %619 unwind label %670

619:                                              ; preds = %617
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef %618)
          to label %620 unwind label %670

620:                                              ; preds = %619
  %621 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %622 unwind label %674

622:                                              ; preds = %620
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(97) %621, double noundef 1.000000e+00)
          to label %623 unwind label %674

623:                                              ; preds = %622
  %624 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %625 unwind label %674

625:                                              ; preds = %623
  %626 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %627 unwind label %674

627:                                              ; preds = %625
  %628 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %629 unwind label %674

629:                                              ; preds = %627
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(97) %624, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %626, ptr noundef nonnull align 8 dereferenceable(128) %628, double noundef 1.000000e+00)
          to label %630 unwind label %674

630:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #8
  %631 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #9
          to label %632 unwind label %678

632:                                              ; preds = %630
  %633 = load i32, ptr %62, align 4, !tbaa !13
  %634 = load i32, ptr %62, align 4, !tbaa !13
  invoke void @_ZN10SimTKIpopt19DenseGenMatrixSpaceC1Eii(ptr noundef nonnull align 8 dereferenceable(20) %631, i32 noundef %633, i32 noundef %634)
          to label %635 unwind label %682

635:                                              ; preds = %632
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef %631)
          to label %636 unwind label %678

636:                                              ; preds = %635
  %637 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %638 unwind label %686

638:                                              ; preds = %636
  %639 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseGenMatrixSpace21MakeNewDenseGenMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %637)
          to label %640 unwind label %686

640:                                              ; preds = %638
  %641 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 21
  %642 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %641, ptr noundef %639)
          to label %643 unwind label %686

643:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #8
  %644 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 21
  %645 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %644)
          to label %646 unwind label %690

646:                                              ; preds = %643
  %647 = invoke noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %648 unwind label %690

648:                                              ; preds = %646
  %649 = invoke noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89) %645, ptr noundef nonnull align 8 dereferenceable(97) %647)
          to label %650 unwind label %690

650:                                              ; preds = %648
  %651 = zext i1 %649 to i8
  store i8 %651, ptr %78, align 1, !tbaa !11
  %652 = load i8, ptr %78, align 1, !tbaa !11, !range !19, !noundef !20
  %653 = trunc i8 %652 to i1
  br i1 %653, label %694, label %654

654:                                              ; preds = %650
  %655 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %80)
          to label %656 unwind label %690

656:                                              ; preds = %654
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %655, i32 noundef 5, i32 noundef 5, ptr noundef @.str.4)
          to label %657 unwind label %690

657:                                              ; preds = %656
  store i32 2, ptr %40, align 4, !tbaa !15
  %658 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 26
  %659 = load i32, ptr %658, align 8, !tbaa !21
  %660 = add nsw i32 %659, 1
  store i32 %660, ptr %658, align 8, !tbaa !21
  %661 = load i32, ptr %40, align 4, !tbaa !15
  store i32 %661, ptr %20, align 4
  store i32 1, ptr %57, align 4
  br label %695

662:                                              ; preds = %614, %610
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %44, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %45, align 4
  br label %703

666:                                              ; preds = %612
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %44, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %45, align 4
  call void @_ZdlPvm(ptr noundef %611, i64 noundef 24) #10
  br label %703

670:                                              ; preds = %619, %617, %615
  %671 = landingpad { ptr, i32 }
          cleanup
  %672 = extractvalue { ptr, i32 } %671, 0
  store ptr %672, ptr %44, align 8
  %673 = extractvalue { ptr, i32 } %671, 1
  store i32 %673, ptr %45, align 4
  br label %702

674:                                              ; preds = %629, %627, %625, %623, %622, %620
  %675 = landingpad { ptr, i32 }
          cleanup
  %676 = extractvalue { ptr, i32 } %675, 0
  store ptr %676, ptr %44, align 8
  %677 = extractvalue { ptr, i32 } %675, 1
  store i32 %677, ptr %45, align 4
  br label %701

678:                                              ; preds = %635, %630
  %679 = landingpad { ptr, i32 }
          cleanup
  %680 = extractvalue { ptr, i32 } %679, 0
  store ptr %680, ptr %44, align 8
  %681 = extractvalue { ptr, i32 } %679, 1
  store i32 %681, ptr %45, align 4
  br label %700

682:                                              ; preds = %632
  %683 = landingpad { ptr, i32 }
          cleanup
  %684 = extractvalue { ptr, i32 } %683, 0
  store ptr %684, ptr %44, align 8
  %685 = extractvalue { ptr, i32 } %683, 1
  store i32 %685, ptr %45, align 4
  call void @_ZdlPvm(ptr noundef %631, i64 noundef 24) #10
  br label %700

686:                                              ; preds = %640, %638, %636
  %687 = landingpad { ptr, i32 }
          cleanup
  %688 = extractvalue { ptr, i32 } %687, 0
  store ptr %688, ptr %44, align 8
  %689 = extractvalue { ptr, i32 } %687, 1
  store i32 %689, ptr %45, align 4
  br label %699

690:                                              ; preds = %656, %654, %648, %646, %643
  %691 = landingpad { ptr, i32 }
          cleanup
  %692 = extractvalue { ptr, i32 } %691, 0
  store ptr %692, ptr %44, align 8
  %693 = extractvalue { ptr, i32 } %691, 1
  store i32 %693, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  br label %699

694:                                              ; preds = %650
  store i32 0, ptr %57, align 4
  br label %695

695:                                              ; preds = %694, %657
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  br label %696

696:                                              ; preds = %695, %432
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  %697 = load i32, ptr %57, align 4
  switch i32 %697, label %719 [
    i32 0, label %698
  ]

698:                                              ; preds = %696
  br label %717

699:                                              ; preds = %690, %686
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #8
  br label %700

700:                                              ; preds = %699, %682, %678
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  br label %701

701:                                              ; preds = %700, %674
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #8
  br label %702

702:                                              ; preds = %701, %670
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  br label %703

703:                                              ; preds = %702, %666, %662
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  br label %704

704:                                              ; preds = %703, %609, %454
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #8
  br label %705

705:                                              ; preds = %704, %450
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  br label %706

706:                                              ; preds = %705, %446
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  br label %707

707:                                              ; preds = %706, %442
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  br label %708

708:                                              ; preds = %707, %438
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  br label %709

709:                                              ; preds = %708, %434
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  br label %721

710:                                              ; preds = %395
  %711 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 21
  %712 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %711, ptr noundef null)
          to label %713 unwind label %278

713:                                              ; preds = %710
  %714 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %80, i32 0, i32 23
  %715 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %714, ptr noundef null)
          to label %716 unwind label %278

716:                                              ; preds = %713
  br label %717

717:                                              ; preds = %716, %698
  %718 = load i32, ptr %40, align 4, !tbaa !15
  store i32 %718, ptr %20, align 4
  store i32 1, ptr %57, align 4
  br label %719

719:                                              ; preds = %717, %696, %376
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  %720 = load i32, ptr %20, align 4
  ret i32 %720

721:                                              ; preds = %709, %385, %278
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  br label %722

722:                                              ; preds = %721, %274
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %723

723:                                              ; preds = %722, %226, %192, %180
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  br label %724

724:                                              ; preds = %723, %176
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #8
  br label %725

725:                                              ; preds = %724, %172
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %726

726:                                              ; preds = %725, %139, %130, %121
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  br label %727

727:                                              ; preds = %726, %109
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  br label %728

728:                                              ; preds = %727, %105
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %729

729:                                              ; preds = %728
  %730 = load ptr, ptr %44, align 8
  %731 = load i32, ptr %45, align 4
  %732 = insertvalue { ptr, i32 } poison, ptr %730, 0
  %733 = insertvalue { ptr, i32 } %732, i32 %731, 1
  resume { ptr, i32 } %733
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69)) #6 align 2

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

declare void @_ZNK10SimTKIpopt6Matrix10MultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69), double noundef, ptr noundef nonnull align 8 dereferenceable(205), double noundef, ptr noundef nonnull align 8 dereferenceable(205)) #5

; Function Attrs: nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) #7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #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)) #2 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)) #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver16SolveMultiVectorEPKNS_6VectorEdS3_dRKNS_6MatrixES3_dS6_S3_dRS2_S7_S7_S7_RKNS_17MultiVectorMatrixERKNS_8SmartPtrIS5_EERNSB_IS8_EESG_SG_bi(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef, double noundef, ptr noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(69), ptr noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(69), ptr noundef, 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), ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext, i32 noundef) #3 align 2

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

declare void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef) unnamed_addr #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK10SimTKIpopt19DenseSymMatrixSpace21MakeNewDenseSymMatrixEv(ptr noundef nonnull align 8 dereferenceable(20)) #3 align 2

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

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

declare void @_ZN10SimTKIpopt14DenseSymMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(97), double noundef) #5

declare void @_ZN10SimTKIpopt14DenseSymMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(97), double noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(128), double noundef) #5

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

declare void @_ZN10SimTKIpopt19DenseGenMatrixSpaceC1Eii(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef, i32 noundef) unnamed_addr #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK10SimTKIpopt19DenseGenMatrixSpace21MakeNewDenseGenMatrixEv(ptr noundef nonnull align 8 dereferenceable(20)) #3 align 2

declare noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(97)) #5

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

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt14DenseGenMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(89), double noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(128), double noundef) #5

declare void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveMatrixERS0_(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(89)) #5

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

declare void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128), double noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(69), double noundef) #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt17MultiVectorMatrix9GetVectorEi(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.48") align 8, ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) #6 align 2

declare void @_ZN10SimTKIpopt17MultiVectorMatrix9SetVectorEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef, ptr noundef nonnull align 8 dereferenceable(205)) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.48") align 8, ptr noundef nonnull align 8 dereferenceable(265), i32 noundef) #3 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt16ESymSolverStatusE", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"vtable pointer", !8, i64 0}
!19 = !{i8 0, i8 2}
!20 = !{}
!21 = !{!22, !14, i64 200}
!22 = !{!"_ZTSN10SimTKIpopt22LowRankAugSystemSolverE", !23, i64 0, !30, i64 56, !14, i64 64, !10, i64 72, !14, i64 80, !10, i64 88, !14, i64 96, !10, i64 104, !14, i64 112, !14, i64 116, !10, i64 120, !14, i64 128, !14, i64 132, !10, i64 136, !12, i64 144, !31, i64 152, !31, i64 160, !32, i64 168, !32, i64 176, !33, i64 184, !34, i64 192, !14, i64 200}
!23 = !{!"_ZTSN10SimTKIpopt15AugSystemSolverE", !24, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !25, i64 0, !26, i64 16, !27, i64 24, !28, i64 32, !29, i64 40, !12, i64 48}
!25 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !14, i64 8}
!26 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!27 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !6, i64 0}
!28 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !6, i64 0}
!29 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !6, i64 0}
!30 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEE", !6, i64 0}
!31 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEE", !6, i64 0}
!32 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEE", !6, i64 0}
!33 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_10DiagMatrixEEE", !6, i64 0}
!34 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_19CompoundVectorSpaceEEE", !6, i64 0}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}


; 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.48" = type { ptr }
%"class.SimTKIpopt::SmartPtr.57" = type { ptr }
%"class.SimTKIpopt::SmartPtr.59" = type { ptr }
%"class.SimTKIpopt::SmartPtr" = type { ptr }
%"class.SimTKIpopt::SmartPtr.41" = type { ptr }
%"class.SimTKIpopt::SmartPtr.22" = type { ptr }
%"class.SimTKIpopt::SmartPtr.60" = type { ptr }
%"class.SimTKIpopt::SmartPtr.61" = type { ptr }
%"class.SimTKIpopt::SmartPtr.62" = type { ptr }
%"class.SimTKIpopt::SmartPtr.21" = type { ptr }

@_ZTIN10SimTKIpopt9SymMatrixE = external constant ptr
@_ZTIN10SimTKIpopt22LowRankUpdateSymMatrixE = external constant ptr
@.str.1 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [70 x i8], align 1
@_ZTIN10SimTKIpopt6VectorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN10SimTKIpopt14CompoundVectorE = external constant ptr
@.str.4 = external hidden unnamed_addr constant [57 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver19UpdateFactorizationEPKNS_9SymMatrixEdPKNS_6VectorEdS6_dRKNS_6MatrixES6_dS9_S6_dRS5_SA_SA_SA_bi(ptr noundef nonnull align 8 dereferenceable(204) %0, ptr noundef %1, double noundef %2, ptr noundef %3, double noundef %4, ptr noundef %5, double noundef %6, ptr noundef nonnull align 8 dereferenceable(69) %7, ptr noundef %8, double noundef %9, ptr noundef nonnull align 8 dereferenceable(69) %10, ptr noundef %11, double noundef %12, ptr noundef nonnull align 8 dereferenceable(205) %13, ptr noundef nonnull align 8 dereferenceable(205) %14, ptr noundef nonnull align 8 dereferenceable(205) %15, ptr noundef nonnull align 8 dereferenceable(205) %16, i1 noundef zeroext %17, i32 noundef %18) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %20 = alloca %"class.SimTKIpopt::SmartPtr.48", align 8
  %21 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %22 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %23 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %24 = alloca %"class.SimTKIpopt::SmartPtr.57", align 8
  %25 = alloca %"class.SimTKIpopt::SmartPtr.48", align 8
  %26 = alloca %"class.SimTKIpopt::SmartPtr.59", align 8
  %27 = alloca %"class.SimTKIpopt::SmartPtr", align 8
  %28 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %29 = alloca %"class.SimTKIpopt::SmartPtr.41", align 8
  %30 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %31 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %32 = alloca %"class.SimTKIpopt::SmartPtr.60", align 8
  %33 = alloca %"class.SimTKIpopt::SmartPtr.61", align 8
  %34 = alloca %"class.SimTKIpopt::SmartPtr.62", align 8
  %35 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %36 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %37 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %38 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %39 = alloca %"class.SimTKIpopt::SmartPtr.62", align 8
  %40 = alloca %"class.SimTKIpopt::SmartPtr.21", align 8
  %41 = alloca %"class.SimTKIpopt::SmartPtr.22", align 8
  %42 = alloca %"class.SimTKIpopt::SmartPtr.48", align 8
  %43 = alloca %"class.SimTKIpopt::SmartPtr.48", align 8
  %44 = alloca %"class.SimTKIpopt::SmartPtr.60", align 8
  %45 = alloca %"class.SimTKIpopt::SmartPtr.61", align 8
  %46 = alloca %"class.SimTKIpopt::SmartPtr.62", align 8
  %47 = icmp eq ptr %1, null
  br i1 %47, label %50, label %48

48:                                               ; preds = %19
  %49 = tail call ptr @__dynamic_cast(ptr nonnull %1, ptr nonnull @_ZTIN10SimTKIpopt9SymMatrixE, ptr nonnull @_ZTIN10SimTKIpopt22LowRankUpdateSymMatrixE, i64 0) #8
  br label %50

50:                                               ; preds = %19, %48
  %51 = phi ptr [ %49, %48 ], [ null, %19 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22)
  %52 = fcmp oeq double %2, 1.000000e+00
  br i1 %52, label %53, label %78

53:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix4GetVEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.57") align 8 %23, ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %54 unwind label %63

54:                                               ; preds = %53
  %55 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %56 unwind label %65

56:                                               ; preds = %54
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix4GetUEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.57") align 8 %24, ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %57 unwind label %68

57:                                               ; preds = %56
  %58 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %59 unwind label %70

59:                                               ; preds = %57
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix7GetDiagEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.48") align 8 %25, ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %60 unwind label %73

60:                                               ; preds = %59
  %61 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %62 unwind label %75

62:                                               ; preds = %60
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  br label %78

63:                                               ; preds = %53
  %64 = landingpad { ptr, i32 }
          cleanup
  br label %67

65:                                               ; preds = %54
  %66 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  br label %67

67:                                               ; preds = %65, %63
  %.pn = phi { ptr, i32 } [ %66, %65 ], [ %64, %63 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %395

68:                                               ; preds = %56
  %69 = landingpad { ptr, i32 }
          cleanup
  br label %72

70:                                               ; preds = %57
  %71 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  br label %72

72:                                               ; preds = %70, %68
  %.pn126 = phi { ptr, i32 } [ %71, %70 ], [ %69, %68 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  br label %395

73:                                               ; preds = %59
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %77

75:                                               ; preds = %60
  %76 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br label %77

77:                                               ; preds = %75, %73
  %.pn128 = phi { ptr, i32 } [ %76, %75 ], [ %74, %73 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  br label %395

78:                                               ; preds = %62, %50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix9P_LowRankEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.59") align 8 %26, ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %79 unwind label %100

79:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  invoke void @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix18LowRankVectorSpaceEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr") align 8 %27, ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %80 unwind label %102

80:                                               ; preds = %79
  %81 = call noundef zeroext i1 @_ZN10SimTKIpopt6IsNullIKNS_6VectorEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %20)
  br i1 %81, label %82, label %111

82:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  %83 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_6MatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %84 unwind label %106

84:                                               ; preds = %82
  br i1 %83, label %85, label %91

85:                                               ; preds = %84
  %86 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %27)
  %87 = load ptr, ptr %86, align 8, !tbaa !5
  %88 = getelementptr inbounds i8, ptr %87, i64 16
  %89 = load ptr, ptr %88, align 8
  %90 = invoke noundef ptr %89(ptr noundef nonnull align 8 dereferenceable(16) %86)
          to label %93 unwind label %106

91:                                               ; preds = %84
  %92 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %13)
          to label %93 unwind label %106

93:                                               ; preds = %91, %85
  %94 = phi ptr [ %90, %85 ], [ %92, %91 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef %94)
  %95 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
  invoke void @_ZN10SimTKIpopt6Vector3SetEd(ptr noundef nonnull align 8 dereferenceable(205) %95, double noundef 0.000000e+00)
          to label %96 unwind label %108

96:                                               ; preds = %93
  %97 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_6VectorEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %28)
  %98 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef %97)
          to label %99 unwind label %108

99:                                               ; preds = %96
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  br label %111

100:                                              ; preds = %78
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %394

102:                                              ; preds = %79
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %393

104:                                              ; preds = %133, %114, %111
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %392

106:                                              ; preds = %91, %85, %82
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %110

108:                                              ; preds = %96, %93
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  br label %110

110:                                              ; preds = %108, %106
  %.pn130 = phi { ptr, i32 } [ %109, %108 ], [ %107, %106 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  br label %392

111:                                              ; preds = %99, %80
  %112 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_6MatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %113 unwind label %104

113:                                              ; preds = %111
  br i1 %112, label %114, label %133

114:                                              ; preds = %113
  %115 = invoke noundef zeroext i1 @_ZNK10SimTKIpopt22LowRankUpdateSymMatrix11ReducedDiagEv(ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %116 unwind label %104

116:                                              ; preds = %114
  br i1 %115, label %117, label %133

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #8
  %118 = invoke noundef ptr @_ZNK10SimTKIpopt6Vector7MakeNewEv(ptr noundef nonnull align 8 dereferenceable(205) %13)
          to label %119 unwind label %128

119:                                              ; preds = %117
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef %118)
  %120 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
  %121 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
  %122 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29)
  invoke void @_ZNK10SimTKIpopt6Matrix10MultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %120, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %121, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %122)
          to label %123 unwind label %130

123:                                              ; preds = %119
  %124 = getelementptr inbounds i8, ptr %0, i64 184
  %125 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_10DiagMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %124)
  %126 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrINS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29)
  invoke void @_ZN10SimTKIpopt10DiagMatrix7SetDiagERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(88) %125, ptr noundef nonnull align 8 dereferenceable(205) %126)
          to label %127 unwind label %130

127:                                              ; preds = %123
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  br label %137

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

130:                                              ; preds = %123, %119
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  br label %132

132:                                              ; preds = %130, %128
  %.pn132 = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  br label %392

133:                                              ; preds = %116, %113
  %134 = getelementptr inbounds i8, ptr %0, i64 184
  %135 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_10DiagMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %134)
  %136 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
  invoke void @_ZN10SimTKIpopt10DiagMatrix7SetDiagERKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(88) %135, ptr noundef nonnull align 8 dereferenceable(205) %136)
          to label %137 unwind label %104

137:                                              ; preds = %133, %127
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30)
  %138 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %139 unwind label %151

139:                                              ; preds = %137
  br i1 %138, label %140, label %214

140:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31)
  %141 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
  %142 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %141)
          to label %143 unwind label %153

143:                                              ; preds = %140
  %144 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
  %145 = getelementptr inbounds i8, ptr %0, i64 168
  %146 = invoke noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver16SolveMultiVectorEPKNS_6VectorEdS3_dRKNS_6MatrixES3_dS6_S3_dRS2_S7_S7_S7_RKNS_17MultiVectorMatrixERKNS_8SmartPtrIS5_EERNSB_IS8_EESG_SG_bi(ptr noundef nonnull align 8 dereferenceable(204) %0, ptr noundef %3, double noundef %4, ptr noundef %5, double noundef %6, ptr noundef nonnull align 8 dereferenceable(69) %7, ptr noundef %8, double noundef %9, ptr noundef nonnull align 8 dereferenceable(69) %10, ptr noundef %11, double noundef %12, ptr noundef nonnull align 8 dereferenceable(205) %13, ptr noundef nonnull align 8 dereferenceable(205) %14, ptr noundef nonnull align 8 dereferenceable(205) %15, ptr noundef nonnull align 8 dereferenceable(205) %16, ptr noundef nonnull align 8 dereferenceable(128) %144, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef nonnull align 8 dereferenceable(8) %30, i1 noundef zeroext %17, i32 noundef %18)
          to label %147 unwind label %153

147:                                              ; preds = %143
  %.not = icmp eq i32 %146, 0
  br i1 %.not, label %155, label %148

148:                                              ; preds = %147
  %149 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %150 unwind label %153

150:                                              ; preds = %148
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %149, i32 noundef 5, i32 noundef 5, ptr noundef nonnull @.str.1, i32 noundef %146)
          to label %.thread unwind label %153

.thread:                                          ; preds = %150
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  br label %390

151:                                              ; preds = %387, %384, %220, %217, %214, %137
  %152 = landingpad { ptr, i32 }
          cleanup
  br label %391

153:                                              ; preds = %150, %148, %143, %140
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %213

155:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #8
  %156 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #9
          to label %157 unwind label %191

157:                                              ; preds = %155
  invoke void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20) %156, i32 noundef %142)
          to label %158 unwind label %193

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

159:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #8
  %160 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %32)
  %161 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseSymMatrixSpace21MakeNewDenseSymMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %160)
          to label %162 unwind label %195

162:                                              ; preds = %159
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef %161)
          to label %163 unwind label %195

163:                                              ; preds = %162
  %164 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %33)
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(97) %164, double noundef 1.000000e+00)
          to label %165 unwind label %197

165:                                              ; preds = %163
  %166 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %33)
  %167 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
  %168 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %31)
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(97) %166, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %167, ptr noundef nonnull align 8 dereferenceable(128) %168, double noundef 1.000000e+00)
          to label %169 unwind label %197

169:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #8
  %170 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #9
          to label %171 unwind label %199

171:                                              ; preds = %169
  invoke void @_ZN10SimTKIpopt19DenseGenMatrixSpaceC1Eii(ptr noundef nonnull align 8 dereferenceable(20) %170, i32 noundef %142, i32 noundef %142)
          to label %172 unwind label %201

172:                                              ; preds = %171
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull %170)
          to label %173 unwind label %199

173:                                              ; preds = %172
  %174 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
  %175 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseGenMatrixSpace21MakeNewDenseGenMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %174)
          to label %176 unwind label %203

176:                                              ; preds = %173
  %177 = getelementptr inbounds i8, ptr %0, i64 152
  %178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef %175)
          to label %179 unwind label %203

179:                                              ; preds = %176
  %180 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %177)
  %181 = call noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33)
  %182 = invoke noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89) %180, ptr noundef nonnull align 8 dereferenceable(97) %181)
          to label %183 unwind label %205

183:                                              ; preds = %179
  br i1 %182, label %207, label %184

184:                                              ; preds = %183
  %185 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %186 unwind label %205

186:                                              ; preds = %184
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %185, i32 noundef 5, i32 noundef 5, ptr noundef nonnull @.str.2)
          to label %187 unwind label %205

187:                                              ; preds = %186
  %188 = getelementptr inbounds i8, ptr %0, i64 200
  %189 = load i32, ptr %188, align 8, !tbaa !8
  %190 = add nsw i32 %189, 1
  store i32 %190, ptr %188, align 8, !tbaa !8
  br label %207

191:                                              ; preds = %158, %155
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %212

193:                                              ; preds = %157
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %156, i64 noundef 24) #10
  br label %212

195:                                              ; preds = %162, %159
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %211

197:                                              ; preds = %165, %163
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %210

199:                                              ; preds = %172, %169
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %209

201:                                              ; preds = %171
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %170, i64 noundef 24) #10
  br label %209

203:                                              ; preds = %176, %173
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %208

205:                                              ; preds = %186, %184, %179
  %206 = landingpad { ptr, i32 }
          cleanup
  br label %208

207:                                              ; preds = %187, %183
  %.072 = phi i32 [ 2, %187 ], [ 0, %183 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  br i1 %182, label %220, label %390

208:                                              ; preds = %205, %203
  %.pn134 = phi { ptr, i32 } [ %206, %205 ], [ %204, %203 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br label %209

209:                                              ; preds = %208, %201, %199
  %.pn134.pn = phi { ptr, i32 } [ %.pn134, %208 ], [ %200, %199 ], [ %202, %201 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  br label %210

210:                                              ; preds = %209, %197
  %.pn134.pn.pn = phi { ptr, i32 } [ %.pn134.pn, %209 ], [ %198, %197 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  br label %211

211:                                              ; preds = %210, %195
  %.pn134.pn.pn.pn = phi { ptr, i32 } [ %.pn134.pn.pn, %210 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  br label %212

212:                                              ; preds = %211, %193, %191
  %.pn134.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn134.pn.pn.pn, %211 ], [ %192, %191 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  br label %213

213:                                              ; preds = %212, %153
  %.pn140 = phi { ptr, i32 } [ %154, %153 ], [ %.pn134.pn.pn.pn.pn, %212 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  br label %391

214:                                              ; preds = %139
  %215 = getelementptr inbounds i8, ptr %0, i64 168
  %216 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef null)
          to label %217 unwind label %151

217:                                              ; preds = %214
  %218 = getelementptr inbounds i8, ptr %0, i64 152
  %219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %218, ptr noundef null)
          to label %220 unwind label %151

220:                                              ; preds = %217, %207
  %.274 = phi i32 [ %.072, %207 ], [ 0, %217 ]
  %221 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidIKNS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %222 unwind label %151

222:                                              ; preds = %220
  br i1 %221, label %223, label %384

223:                                              ; preds = %222
  %224 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
  %225 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %224)
          to label %226 unwind label %233

226:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38)
  %227 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
  %228 = invoke noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver16SolveMultiVectorEPKNS_6VectorEdS3_dRKNS_6MatrixES3_dS6_S3_dRS2_S7_S7_S7_RKNS_17MultiVectorMatrixERKNS_8SmartPtrIS5_EERNSB_IS8_EESG_SG_bi(ptr noundef nonnull align 8 dereferenceable(204) %0, ptr noundef %3, double noundef %4, ptr noundef %5, double noundef %6, ptr noundef nonnull align 8 dereferenceable(69) %7, ptr noundef %8, double noundef %9, ptr noundef nonnull align 8 dereferenceable(69) %10, ptr noundef %11, double noundef %12, ptr noundef nonnull align 8 dereferenceable(205) %13, ptr noundef nonnull align 8 dereferenceable(205) %14, ptr noundef nonnull align 8 dereferenceable(205) %15, ptr noundef nonnull align 8 dereferenceable(205) %16, ptr noundef nonnull align 8 dereferenceable(128) %227, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37, i1 noundef zeroext %17, i32 noundef %18)
          to label %229 unwind label %235

229:                                              ; preds = %226
  %.not142 = icmp eq i32 %228, 0
  br i1 %.not142, label %237, label %230

230:                                              ; preds = %229
  %231 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %232 unwind label %235

232:                                              ; preds = %230
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %231, i32 noundef 5, i32 noundef 5, ptr noundef nonnull @.str.3, i32 noundef %228)
          to label %377 unwind label %235

233:                                              ; preds = %223
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %391

235:                                              ; preds = %243, %240, %232, %230, %226
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %383

237:                                              ; preds = %229
  %238 = getelementptr inbounds i8, ptr %0, i64 168
  %239 = call noundef zeroext i1 @_ZN10SimTKIpopt6IsNullINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %238)
  br i1 %239, label %240, label %245

240:                                              ; preds = %237
  %241 = getelementptr inbounds i8, ptr %0, i64 176
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %241, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %243 unwind label %235

243:                                              ; preds = %240
  %244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %323 unwind label %235

245:                                              ; preds = %237
  %246 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %238)
  %247 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %246)
          to label %248 unwind label %282

248:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #8
  %249 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #9
          to label %250 unwind label %284

250:                                              ; preds = %248
  invoke void @_ZN10SimTKIpopt19DenseGenMatrixSpaceC1Eii(ptr noundef nonnull align 8 dereferenceable(20) %249, i32 noundef %247, i32 noundef %225)
          to label %251 unwind label %286

251:                                              ; preds = %250
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull %249)
          to label %252 unwind label %284

252:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #8
  %253 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39)
  %254 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseGenMatrixSpace21MakeNewDenseGenMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %253)
          to label %255 unwind label %288

255:                                              ; preds = %252
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef %254)
          to label %256 unwind label %288

256:                                              ; preds = %255
  %257 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
  %258 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
  %259 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35)
  invoke void @_ZN10SimTKIpopt14DenseGenMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(89) %257, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %258, ptr noundef nonnull align 8 dereferenceable(128) %259, double noundef 0.000000e+00)
          to label %260 unwind label %290

260:                                              ; preds = %256
  %261 = getelementptr inbounds i8, ptr %0, i64 152
  %262 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %261)
  %263 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveMatrixERS0_(ptr noundef nonnull align 8 dereferenceable(89) %262, ptr noundef nonnull align 8 dereferenceable(89) %263)
          to label %264 unwind label %290

264:                                              ; preds = %260
  %265 = getelementptr inbounds i8, ptr %0, i64 176
  %266 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %265, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %267 unwind label %290

267:                                              ; preds = %264
  %268 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %265)
  %269 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %238)
  %270 = call noundef nonnull align 8 dereferenceable(89) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128) %268, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %269, ptr noundef nonnull align 8 dereferenceable(69) %270, double noundef 1.000000e+00)
          to label %271 unwind label %290

271:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #8
  %272 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
  invoke void @_ZNK10SimTKIpopt17MultiVectorMatrix24MakeNewMultiVectorMatrixEv(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.22") align 8 %41, ptr noundef nonnull align 8 dereferenceable(128) %272)
          to label %273 unwind label %292

273:                                              ; preds = %271
  %274 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %275 unwind label %294

275:                                              ; preds = %273
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  br label %276

276:                                              ; preds = %313, %275
  %.078 = phi i32 [ 0, %275 ], [ %314, %313 ]
  %277 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
  %278 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %277)
          to label %279 unwind label %297

279:                                              ; preds = %276
  %280 = icmp slt i32 %.078, %278
  br i1 %280, label %299, label %281

281:                                              ; preds = %279
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  br label %323

282:                                              ; preds = %245
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %383

284:                                              ; preds = %251, %248
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %322

286:                                              ; preds = %250
  %287 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %249, i64 noundef 24) #10
  br label %322

288:                                              ; preds = %255, %252
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %321

290:                                              ; preds = %267, %264, %260, %256
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %320

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

294:                                              ; preds = %273
  %295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  br label %296

296:                                              ; preds = %294, %292
  %.pn143 = phi { ptr, i32 } [ %295, %294 ], [ %293, %292 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  br label %320

297:                                              ; preds = %276
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %320

299:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #8
  %300 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %265)
  invoke void @_ZNK10SimTKIpopt17MultiVectorMatrix9GetVectorEi(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.48") align 8 %42, ptr noundef nonnull align 8 dereferenceable(128) %300, i32 noundef %.078)
          to label %301 unwind label %306

301:                                              ; preds = %299
  %302 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrIKNS_6VectorEEEPT_RKNS_8SmartPtrIS3_EE(ptr noundef nonnull align 8 dereferenceable(8) %42)
  %303 = icmp eq ptr %302, null
  br i1 %303, label %308, label %304

304:                                              ; preds = %301
  %305 = call ptr @__dynamic_cast(ptr nonnull %302, ptr nonnull @_ZTIN10SimTKIpopt6VectorE, ptr nonnull @_ZTIN10SimTKIpopt14CompoundVectorE, i64 0) #8
  br label %308

306:                                              ; preds = %299
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  br label %320

308:                                              ; preds = %301, %304
  %309 = phi ptr [ %305, %304 ], [ null, %301 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  %310 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %38)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  invoke void @_ZNK10SimTKIpopt14CompoundVector7GetCompEi(ptr dead_on_unwind nonnull writable sret(%"class.SimTKIpopt::SmartPtr.48") align 8 %43, ptr noundef nonnull align 8 dereferenceable(265) %309, i32 noundef 0)
          to label %311 unwind label %315

311:                                              ; preds = %308
  %312 = call noundef nonnull align 8 dereferenceable(205) ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6VectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
  invoke void @_ZN10SimTKIpopt17MultiVectorMatrix9SetVectorEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(128) %310, i32 noundef %.078, ptr noundef nonnull align 8 dereferenceable(205) %312)
          to label %313 unwind label %317

313:                                              ; preds = %311
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  %314 = add nuw nsw i32 %.078, 1
  br label %276, !llvm.loop !27

315:                                              ; preds = %308
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %319

317:                                              ; preds = %311
  %318 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  br label %319

319:                                              ; preds = %317, %315
  %.pn145 = phi { ptr, i32 } [ %318, %317 ], [ %316, %315 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  br label %320

320:                                              ; preds = %297, %319, %306, %296, %290
  %.pn145.pn.pn.pn = phi { ptr, i32 } [ %.pn143, %296 ], [ %291, %290 ], [ %298, %297 ], [ %.pn145, %319 ], [ %307, %306 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  br label %321

321:                                              ; preds = %320, %288
  %.pn145.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn.pn, %320 ], [ %289, %288 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  br label %322

322:                                              ; preds = %321, %286, %284
  %.pn145.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn.pn.pn, %321 ], [ %285, %284 ], [ %287, %286 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  br label %383

323:                                              ; preds = %243, %281
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #8
  %324 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #9
          to label %325 unwind label %359

325:                                              ; preds = %323
  invoke void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20) %324, i32 noundef %225)
          to label %326 unwind label %361

326:                                              ; preds = %325
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull %324)
          to label %327 unwind label %359

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #8
  %328 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  %329 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseSymMatrixSpace21MakeNewDenseSymMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %328)
          to label %330 unwind label %363

330:                                              ; preds = %327
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef %329)
          to label %331 unwind label %363

331:                                              ; preds = %330
  %332 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %45)
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(97) %332, double noundef 1.000000e+00)
          to label %333 unwind label %365

333:                                              ; preds = %331
  %334 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %45)
  %335 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %38)
  %336 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35)
  invoke void @_ZN10SimTKIpopt14DenseSymMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(97) %334, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(128) %335, ptr noundef nonnull align 8 dereferenceable(128) %336, double noundef 1.000000e+00)
          to label %337 unwind label %365

337:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #8
  %338 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #9
          to label %339 unwind label %367

339:                                              ; preds = %337
  invoke void @_ZN10SimTKIpopt19DenseGenMatrixSpaceC1Eii(ptr noundef nonnull align 8 dereferenceable(20) %338, i32 noundef %225, i32 noundef %225)
          to label %340 unwind label %369

340:                                              ; preds = %339
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull %338)
          to label %341 unwind label %367

341:                                              ; preds = %340
  %342 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %343 = invoke noundef ptr @_ZNK10SimTKIpopt19DenseGenMatrixSpace21MakeNewDenseGenMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %342)
          to label %344 unwind label %371

344:                                              ; preds = %341
  %345 = getelementptr inbounds i8, ptr %0, i64 160
  %346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %345, ptr noundef %343)
          to label %347 unwind label %371

347:                                              ; preds = %344
  %348 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %345)
  %349 = call noundef nonnull align 8 dereferenceable(97) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %45)
  %350 = invoke noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89) %348, ptr noundef nonnull align 8 dereferenceable(97) %349)
          to label %351 unwind label %373

351:                                              ; preds = %347
  br i1 %350, label %375, label %352

352:                                              ; preds = %351
  %353 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
          to label %354 unwind label %373

354:                                              ; preds = %352
  invoke void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %353, i32 noundef 5, i32 noundef 5, ptr noundef nonnull @.str.4)
          to label %355 unwind label %373

355:                                              ; preds = %354
  %356 = getelementptr inbounds i8, ptr %0, i64 200
  %357 = load i32, ptr %356, align 8, !tbaa !8
  %358 = add nsw i32 %357, 1
  store i32 %358, ptr %356, align 8, !tbaa !8
  br label %375

359:                                              ; preds = %326, %323
  %360 = landingpad { ptr, i32 }
          cleanup
  br label %382

361:                                              ; preds = %325
  %362 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %324, i64 noundef 24) #10
  br label %382

363:                                              ; preds = %330, %327
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %381

365:                                              ; preds = %333, %331
  %366 = landingpad { ptr, i32 }
          cleanup
  br label %380

367:                                              ; preds = %340, %337
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %379

369:                                              ; preds = %339
  %370 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %338, i64 noundef 24) #10
  br label %379

371:                                              ; preds = %344, %341
  %372 = landingpad { ptr, i32 }
          cleanup
  br label %378

373:                                              ; preds = %354, %352, %347
  %374 = landingpad { ptr, i32 }
          cleanup
  br label %378

375:                                              ; preds = %351, %355
  %376 = phi i32 [ 2, %355 ], [ 0, %351 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  br label %377

377:                                              ; preds = %232, %375
  %.3119 = phi i32 [ %376, %375 ], [ %228, %232 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  br label %390

378:                                              ; preds = %373, %371
  %.pn153 = phi { ptr, i32 } [ %374, %373 ], [ %372, %371 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseGenMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  br label %379

379:                                              ; preds = %378, %369, %367
  %.pn153.pn = phi { ptr, i32 } [ %.pn153, %378 ], [ %368, %367 ], [ %370, %369 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #8
  br label %380

380:                                              ; preds = %379, %365
  %.pn153.pn.pn = phi { ptr, i32 } [ %.pn153.pn, %379 ], [ %366, %365 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14DenseSymMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  br label %381

381:                                              ; preds = %380, %363
  %.pn153.pn.pn.pn = phi { ptr, i32 } [ %.pn153.pn.pn, %380 ], [ %364, %363 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_19DenseSymMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  br label %382

382:                                              ; preds = %381, %361, %359
  %.pn153.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn153.pn.pn.pn, %381 ], [ %360, %359 ], [ %362, %361 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  br label %383

383:                                              ; preds = %282, %322, %382, %235
  %.pn159 = phi { ptr, i32 } [ %236, %235 ], [ %.pn153.pn.pn.pn.pn, %382 ], [ %.pn145.pn.pn.pn.pn.pn, %322 ], [ %283, %282 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  br label %391

384:                                              ; preds = %222
  %385 = getelementptr inbounds i8, ptr %0, i64 160
  %386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %385, ptr noundef null)
          to label %387 unwind label %151

387:                                              ; preds = %384
  %388 = getelementptr inbounds i8, ptr %0, i64 176
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %388, ptr noundef null)
          to label %390 unwind label %151

390:                                              ; preds = %377, %.thread, %387, %207
  %.5 = phi i32 [ 2, %207 ], [ %.274, %387 ], [ %146, %.thread ], [ %.3119, %377 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  ret i32 %.5

391:                                              ; preds = %233, %383, %213, %151
  %.pn159.pn.pn = phi { ptr, i32 } [ %152, %151 ], [ %.pn140, %213 ], [ %.pn159, %383 ], [ %234, %233 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  br label %392

392:                                              ; preds = %391, %132, %110, %104
  %.pn159.pn.pn.pn = phi { ptr, i32 } [ %.pn159.pn.pn, %391 ], [ %.pn132, %132 ], [ %105, %104 ], [ %.pn130, %110 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_11VectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  br label %393

393:                                              ; preds = %392, %102
  %.pn159.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn159.pn.pn.pn, %392 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6MatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  br label %394

394:                                              ; preds = %393, %100
  %.pn159.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn159.pn.pn.pn.pn, %393 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  br label %395

395:                                              ; preds = %394, %77, %72, %67
  %.pn159.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn159.pn.pn.pn.pn.pn, %394 ], [ %.pn128, %77 ], [ %.pn126, %72 ], [ %.pn, %67 ]
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_17MultiVectorMatrixEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @_ZN10SimTKIpopt8SmartPtrIKNS_6VectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  resume { ptr, i32 } %.pn159.pn.pn.pn.pn.pn.pn
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69)) local_unnamed_addr #6 align 2

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

declare void @_ZNK10SimTKIpopt6Matrix10MultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69), double noundef, ptr noundef nonnull align 8 dereferenceable(205), double noundef, ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #5

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_6MatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) 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 #2 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 #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver16SolveMultiVectorEPKNS_6VectorEdS3_dRKNS_6MatrixES3_dS6_S3_dRS2_S7_S7_S7_RKNS_17MultiVectorMatrixERKNS_8SmartPtrIS5_EERNSB_IS8_EESG_SG_bi(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef, double noundef, ptr noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(69), ptr noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(69), ptr noundef, 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), ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext, i32 noundef) local_unnamed_addr #3 align 2

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

declare void @_ZN10SimTKIpopt19DenseSymMatrixSpaceC1Ei(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef) unnamed_addr #5

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

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

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

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

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

declare void @_ZN10SimTKIpopt14DenseSymMatrix12FillIdentityEd(ptr noundef nonnull align 8 dereferenceable(97), double noundef) local_unnamed_addr #5

declare void @_ZN10SimTKIpopt14DenseSymMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(97), double noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(128), double noundef) local_unnamed_addr #5

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

declare void @_ZN10SimTKIpopt19DenseGenMatrixSpaceC1Eii(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef, i32 noundef) unnamed_addr #5

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

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

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

declare noundef zeroext i1 @_ZN10SimTKIpopt14DenseGenMatrix21ComputeCholeskyFactorERKNS_14DenseSymMatrixE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(97)) local_unnamed_addr #5

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

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt14DenseGenMatrix23HighRankUpdateTransposeEdRKNS_17MultiVectorMatrixES3_d(ptr noundef nonnull align 8 dereferenceable(89), double noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(128), double noundef) local_unnamed_addr #5

declare void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveMatrixERS0_(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(89)) local_unnamed_addr #5

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

declare void @_ZN10SimTKIpopt17MultiVectorMatrix18AddRightMultMatrixEdRKS0_RKNS_6MatrixEd(ptr noundef nonnull align 8 dereferenceable(128), double noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(69), double noundef) local_unnamed_addr #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK10SimTKIpopt17MultiVectorMatrix9GetVectorEi(ptr dead_on_unwind noalias writable sret(%"class.SimTKIpopt::SmartPtr.48") align 8, ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) local_unnamed_addr #6 align 2

declare void @_ZN10SimTKIpopt17MultiVectorMatrix9SetVectorEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef, ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #5

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !13, i64 200}
!9 = !{!"_ZTSN10SimTKIpopt22LowRankAugSystemSolverE", !10, i64 0, !21, i64 56, !13, i64 64, !22, i64 72, !13, i64 80, !22, i64 88, !13, i64 96, !22, i64 104, !13, i64 112, !13, i64 116, !22, i64 120, !13, i64 128, !13, i64 132, !22, i64 136, !20, i64 144, !23, i64 152, !23, i64 160, !24, i64 168, !24, i64 176, !25, i64 184, !26, i64 192, !13, i64 200}
!10 = !{!"_ZTSN10SimTKIpopt15AugSystemSolverE", !11, i64 0}
!11 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !12, i64 0, !15, i64 16, !17, i64 24, !18, i64 32, !19, i64 40, !20, i64 48}
!12 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !13, i64 8}
!13 = !{!"int", !14, i64 0}
!14 = !{!"omnipotent char", !7, i64 0}
!15 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !16, i64 0}
!16 = !{!"any pointer", !14, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !16, i64 0}
!18 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !16, i64 0}
!19 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !16, i64 0}
!20 = !{!"bool", !14, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEE", !16, i64 0}
!22 = !{!"double", !14, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEE", !16, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEE", !16, i64 0}
!25 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_10DiagMatrixEEE", !16, i64 0}
!26 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_19CompoundVectorSpaceEEE", !16, i64 0}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}


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