; 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.47" = type { ptr }
%"class.SimTKIpopt::SmartPtr.49" = type { ptr }
%"class.SimTKIpopt::SmartPtr.55" = type { ptr }
%"class.SimTKIpopt::SmartPtr.56" = 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.21" = type { ptr }
%"class.SimTKIpopt::SmartPtr.22" = type { ptr }
%"class.SimTKIpopt::SmartPtr.23" = type { ptr }
%"class.SimTKIpopt::SmartPtr.24" = type { ptr }

@.str = external hidden unnamed_addr constant [83 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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_10DiagMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver5SolveEPKNS_9SymMatrixEdPKNS_6VectorEdS6_dPKNS_6MatrixES6_dS9_S6_dRS5_SA_SA_SA_RS4_SB_SB_SB_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 %7, ptr noundef %8, double noundef %9, ptr noundef %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(205) %17, ptr noundef nonnull align 8 dereferenceable(205) %18, ptr noundef nonnull align 8 dereferenceable(205) %19, ptr noundef nonnull align 8 dereferenceable(205) %20, i1 noundef zeroext %21, i32 noundef %22) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca double, align 8
  %28 = alloca ptr, align 8
  %29 = alloca double, align 8
  %30 = alloca ptr, align 8
  %31 = alloca double, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca double, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca double, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca i8, align 1
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca %"class.SimTKIpopt::SmartPtr.49", align 8
  %55 = alloca %"class.SimTKIpopt::SmartPtr.49", align 8
  %56 = alloca i32, align 4
  %57 = alloca %"class.SimTKIpopt::SmartPtr.55", align 8
  %58 = alloca %"class.SimTKIpopt::SmartPtr.56", align 8
  %59 = alloca i32, align 4
  %60 = alloca %"class.SimTKIpopt::SmartPtr.55", align 8
  %61 = alloca %"class.SimTKIpopt::SmartPtr.56", align 8
  store ptr %0, ptr %25, align 8, !tbaa !5
  store ptr %1, ptr %26, align 8, !tbaa !5
  store double %2, ptr %27, align 8, !tbaa !9
  store ptr %3, ptr %28, align 8, !tbaa !5
  store double %4, ptr %29, align 8, !tbaa !9
  store ptr %5, ptr %30, align 8, !tbaa !5
  store double %6, ptr %31, align 8, !tbaa !9
  store ptr %7, ptr %32, align 8, !tbaa !5
  store ptr %8, ptr %33, align 8, !tbaa !5
  store double %9, ptr %34, align 8, !tbaa !9
  store ptr %10, ptr %35, align 8, !tbaa !5
  store ptr %11, ptr %36, align 8, !tbaa !5
  store double %12, ptr %37, align 8, !tbaa !9
  store ptr %13, ptr %38, align 8, !tbaa !5
  store ptr %14, ptr %39, align 8, !tbaa !5
  store ptr %15, ptr %40, align 8, !tbaa !5
  store ptr %16, ptr %41, align 8, !tbaa !5
  store ptr %17, ptr %42, align 8, !tbaa !5
  store ptr %18, ptr %43, align 8, !tbaa !5
  store ptr %19, ptr %44, align 8, !tbaa !5
  store ptr %20, ptr %45, align 8, !tbaa !5
  %62 = zext i1 %21 to i8
  store i8 %62, ptr %46, align 1, !tbaa !11
  store i32 %22, ptr %47, align 4, !tbaa !13
  %63 = load ptr, ptr %25, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  %64 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 18
  %65 = load i8, ptr %64, align 8, !tbaa !15, !range !29, !noundef !30
  %66 = trunc i8 %65 to i1
  br i1 %66, label %67, label %89

67:                                               ; preds = %23
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #7
  %68 = load ptr, ptr %38, align 8, !tbaa !5
  %69 = call noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %68)
  store i32 %69, ptr %49, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %70 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #8
  %71 = load i32, ptr %49, align 4, !tbaa !13
  invoke void @_ZN10SimTKIpopt15DiagMatrixSpaceC2Ei(ptr noundef nonnull align 8 dereferenceable(20) %70, i32 noundef %71)
          to label %72 unwind label %80

72:                                               ; preds = %67
  call void @_ZN10SimTKIpopt8SmartPtrINS_15DiagMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef %70)
  %73 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_15DiagMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %74 unwind label %84

74:                                               ; preds = %72
  %75 = invoke noundef ptr @_ZNK10SimTKIpopt15DiagMatrixSpace17MakeNewDiagMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %73)
          to label %76 unwind label %84

76:                                               ; preds = %74
  %77 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 24
  %78 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_10DiagMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef %75)
          to label %79 unwind label %84

79:                                               ; preds = %76
  call void @_ZN10SimTKIpopt8SmartPtrINS_15DiagMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br label %89

80:                                               ; preds = %67
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %51, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %52, align 4
  call void @_ZdlPvm(ptr noundef %70, i64 noundef 24) #9
  br label %88

84:                                               ; preds = %76, %74, %72
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %51, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %52, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_15DiagMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #7
  br label %88

88:                                               ; preds = %84, %80
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br label %456

89:                                               ; preds = %79, %23
  %90 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 18
  %91 = load i8, ptr %90, align 8, !tbaa !15, !range !29, !noundef !30
  %92 = trunc i8 %91 to i1
  br i1 %92, label %107, label %93

93:                                               ; preds = %89
  %94 = load ptr, ptr %26, align 8, !tbaa !5
  %95 = load double, ptr %27, align 8, !tbaa !9
  %96 = load ptr, ptr %28, align 8, !tbaa !5
  %97 = load double, ptr %29, align 8, !tbaa !9
  %98 = load ptr, ptr %30, align 8, !tbaa !5
  %99 = load double, ptr %31, align 8, !tbaa !9
  %100 = load ptr, ptr %32, align 8, !tbaa !5
  %101 = load ptr, ptr %33, align 8, !tbaa !5
  %102 = load double, ptr %34, align 8, !tbaa !9
  %103 = load ptr, ptr %35, align 8, !tbaa !5
  %104 = load ptr, ptr %36, align 8, !tbaa !5
  %105 = load double, ptr %37, align 8, !tbaa !9
  %106 = call noundef zeroext i1 @_ZN10SimTKIpopt22LowRankAugSystemSolver29AugmentedSystemRequiresChangeEPKNS_9SymMatrixEdPKNS_6VectorEdS6_dRKNS_6MatrixES6_dS9_S6_d(ptr noundef nonnull align 8 dereferenceable(204) %63, ptr noundef %94, double noundef %95, ptr noundef %96, double noundef %97, ptr noundef %98, double noundef %99, ptr noundef nonnull align 8 dereferenceable(69) %100, ptr noundef %101, double noundef %102, ptr noundef nonnull align 8 dereferenceable(69) %103, ptr noundef %104, double noundef %105)
  br i1 %106, label %107, label %201

107:                                              ; preds = %93, %89
  %108 = load ptr, ptr %26, align 8, !tbaa !5
  %109 = load double, ptr %27, align 8, !tbaa !9
  %110 = load ptr, ptr %28, align 8, !tbaa !5
  %111 = load double, ptr %29, align 8, !tbaa !9
  %112 = load ptr, ptr %30, align 8, !tbaa !5
  %113 = load double, ptr %31, align 8, !tbaa !9
  %114 = load ptr, ptr %32, align 8, !tbaa !5
  %115 = load ptr, ptr %33, align 8, !tbaa !5
  %116 = load double, ptr %34, align 8, !tbaa !9
  %117 = load ptr, ptr %35, align 8, !tbaa !5
  %118 = load ptr, ptr %36, align 8, !tbaa !5
  %119 = load double, ptr %37, align 8, !tbaa !9
  %120 = load ptr, ptr %38, align 8, !tbaa !5
  %121 = load ptr, ptr %39, align 8, !tbaa !5
  %122 = load ptr, ptr %40, align 8, !tbaa !5
  %123 = load ptr, ptr %41, align 8, !tbaa !5
  %124 = load i8, ptr %46, align 1, !tbaa !11, !range !29, !noundef !30
  %125 = trunc i8 %124 to i1
  %126 = load i32, ptr %47, align 4, !tbaa !13
  %127 = call noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver19UpdateFactorizationEPKNS_9SymMatrixEdPKNS_6VectorEdS6_dRKNS_6MatrixES6_dS9_S6_dRS5_SA_SA_SA_bi(ptr noundef nonnull align 8 dereferenceable(204) %63, ptr noundef %108, double noundef %109, ptr noundef %110, double noundef %111, ptr noundef %112, double noundef %113, ptr noundef nonnull align 8 dereferenceable(69) %114, ptr noundef %115, double noundef %116, ptr noundef nonnull align 8 dereferenceable(69) %117, ptr noundef %118, double noundef %119, ptr noundef nonnull align 8 dereferenceable(205) %120, ptr noundef nonnull align 8 dereferenceable(205) %121, ptr noundef nonnull align 8 dereferenceable(205) %122, ptr noundef nonnull align 8 dereferenceable(205) %123, i1 noundef zeroext %125, i32 noundef %126)
  store i32 %127, ptr %48, align 4, !tbaa !31
  %128 = load i32, ptr %48, align 4, !tbaa !31
  %129 = icmp ne i32 %128, 0
  br i1 %129, label %130, label %132

130:                                              ; preds = %107
  %131 = load i32, ptr %48, align 4, !tbaa !31
  store i32 %131, ptr %24, align 4
  store i32 1, ptr %53, align 4
  br label %454

132:                                              ; preds = %107
  %133 = load ptr, ptr %26, align 8, !tbaa !5
  %134 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %133)
  %135 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 3
  store i32 %134, ptr %135, align 8, !tbaa !33
  %136 = load double, ptr %27, align 8, !tbaa !9
  %137 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 5
  store double %136, ptr %137, align 8, !tbaa !34
  %138 = load ptr, ptr %28, align 8, !tbaa !5
  %139 = icmp ne ptr %138, null
  br i1 %139, label %140, label %144

140:                                              ; preds = %132
  %141 = load ptr, ptr %28, align 8, !tbaa !5
  %142 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %141)
  %143 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 6
  store i32 %142, ptr %143, align 8, !tbaa !35
  br label %146

144:                                              ; preds = %132
  %145 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 6
  store i32 0, ptr %145, align 8, !tbaa !35
  br label %146

146:                                              ; preds = %144, %140
  %147 = load double, ptr %29, align 8, !tbaa !9
  %148 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 8
  store double %147, ptr %148, align 8, !tbaa !36
  %149 = load ptr, ptr %30, align 8, !tbaa !5
  %150 = icmp ne ptr %149, null
  br i1 %150, label %151, label %155

151:                                              ; preds = %146
  %152 = load ptr, ptr %30, align 8, !tbaa !5
  %153 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %152)
  %154 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 9
  store i32 %153, ptr %154, align 8, !tbaa !37
  br label %157

155:                                              ; preds = %146
  %156 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 9
  store i32 0, ptr %156, align 8, !tbaa !37
  br label %157

157:                                              ; preds = %155, %151
  %158 = load double, ptr %31, align 8, !tbaa !9
  %159 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 11
  store double %158, ptr %159, align 8, !tbaa !38
  %160 = load ptr, ptr %32, align 8, !tbaa !5
  %161 = icmp ne ptr %160, null
  br i1 %161, label %162, label %166

162:                                              ; preds = %157
  %163 = load ptr, ptr %32, align 8, !tbaa !5
  %164 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %163)
  %165 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 12
  store i32 %164, ptr %165, align 8, !tbaa !39
  br label %168

166:                                              ; preds = %157
  %167 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 12
  store i32 0, ptr %167, align 8, !tbaa !39
  br label %168

168:                                              ; preds = %166, %162
  %169 = load ptr, ptr %33, align 8, !tbaa !5
  %170 = icmp ne ptr %169, null
  br i1 %170, label %171, label %175

171:                                              ; preds = %168
  %172 = load ptr, ptr %33, align 8, !tbaa !5
  %173 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %172)
  %174 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 13
  store i32 %173, ptr %174, align 4, !tbaa !40
  br label %177

175:                                              ; preds = %168
  %176 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 13
  store i32 0, ptr %176, align 4, !tbaa !40
  br label %177

177:                                              ; preds = %175, %171
  %178 = load double, ptr %34, align 8, !tbaa !9
  %179 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 14
  store double %178, ptr %179, align 8, !tbaa !41
  %180 = load ptr, ptr %35, align 8, !tbaa !5
  %181 = icmp ne ptr %180, null
  br i1 %181, label %182, label %186

182:                                              ; preds = %177
  %183 = load ptr, ptr %35, align 8, !tbaa !5
  %184 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %183)
  %185 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 15
  store i32 %184, ptr %185, align 8, !tbaa !42
  br label %188

186:                                              ; preds = %177
  %187 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 15
  store i32 0, ptr %187, align 8, !tbaa !42
  br label %188

188:                                              ; preds = %186, %182
  %189 = load ptr, ptr %36, align 8, !tbaa !5
  %190 = icmp ne ptr %189, null
  br i1 %190, label %191, label %195

191:                                              ; preds = %188
  %192 = load ptr, ptr %36, align 8, !tbaa !5
  %193 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %192)
  %194 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 16
  store i32 %193, ptr %194, align 4, !tbaa !43
  br label %197

195:                                              ; preds = %188
  %196 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 16
  store i32 0, ptr %196, align 4, !tbaa !43
  br label %197

197:                                              ; preds = %195, %191
  %198 = load double, ptr %37, align 8, !tbaa !9
  %199 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 17
  store double %198, ptr %199, align 8, !tbaa !44
  %200 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 18
  store i8 0, ptr %200, align 8, !tbaa !15
  br label %201

201:                                              ; preds = %197, %93
  %202 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 2
  %203 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %202)
  %204 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 24
  %205 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10DiagMatrixEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %204)
  %206 = load double, ptr %27, align 8, !tbaa !9
  %207 = load ptr, ptr %28, align 8, !tbaa !5
  %208 = load double, ptr %29, align 8, !tbaa !9
  %209 = load ptr, ptr %30, align 8, !tbaa !5
  %210 = load double, ptr %31, align 8, !tbaa !9
  %211 = load ptr, ptr %32, align 8, !tbaa !5
  %212 = load ptr, ptr %33, align 8, !tbaa !5
  %213 = load double, ptr %34, align 8, !tbaa !9
  %214 = load ptr, ptr %35, align 8, !tbaa !5
  %215 = load ptr, ptr %36, align 8, !tbaa !5
  %216 = load double, ptr %37, align 8, !tbaa !9
  %217 = load ptr, ptr %38, align 8, !tbaa !5
  %218 = load ptr, ptr %39, align 8, !tbaa !5
  %219 = load ptr, ptr %40, align 8, !tbaa !5
  %220 = load ptr, ptr %41, align 8, !tbaa !5
  %221 = load ptr, ptr %42, align 8, !tbaa !5
  %222 = load ptr, ptr %43, align 8, !tbaa !5
  %223 = load ptr, ptr %44, align 8, !tbaa !5
  %224 = load ptr, ptr %45, align 8, !tbaa !5
  %225 = load i8, ptr %46, align 1, !tbaa !11, !range !29, !noundef !30
  %226 = trunc i8 %225 to i1
  %227 = load i32, ptr %47, align 4, !tbaa !13
  %228 = load ptr, ptr %203, align 8, !tbaa !45
  %229 = getelementptr inbounds ptr, ptr %228, i64 3
  %230 = load ptr, ptr %229, align 8
  %231 = call noundef i32 %230(ptr noundef nonnull align 8 dereferenceable(49) %203, ptr noundef %205, double noundef %206, ptr noundef %207, double noundef %208, ptr noundef %209, double noundef %210, ptr noundef %211, ptr noundef %212, double noundef %213, ptr noundef %214, ptr noundef %215, double noundef %216, ptr noundef nonnull align 8 dereferenceable(205) %217, ptr noundef nonnull align 8 dereferenceable(205) %218, ptr noundef nonnull align 8 dereferenceable(205) %219, ptr noundef nonnull align 8 dereferenceable(205) %220, ptr noundef nonnull align 8 dereferenceable(205) %221, ptr noundef nonnull align 8 dereferenceable(205) %222, ptr noundef nonnull align 8 dereferenceable(205) %223, ptr noundef nonnull align 8 dereferenceable(205) %224, i1 noundef zeroext %226, i32 noundef %227)
  store i32 %231, ptr %48, align 4, !tbaa !31
  %232 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 2
  %233 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %232)
  %234 = load ptr, ptr %233, align 8, !tbaa !45
  %235 = getelementptr inbounds ptr, ptr %234, i64 6
  %236 = load ptr, ptr %235, align 8
  %237 = call noundef zeroext i1 %236(ptr noundef nonnull align 8 dereferenceable(49) %233)
  br i1 %237, label %238, label %246

238:                                              ; preds = %201
  %239 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 2
  %240 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %239)
  %241 = load ptr, ptr %240, align 8, !tbaa !45
  %242 = getelementptr inbounds ptr, ptr %241, i64 5
  %243 = load ptr, ptr %242, align 8
  %244 = call noundef i32 %243(ptr noundef nonnull align 8 dereferenceable(49) %240)
  %245 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 26
  store i32 %244, ptr %245, align 8, !tbaa !47
  br label %246

246:                                              ; preds = %238, %201
  %247 = load i32, ptr %48, align 4, !tbaa !31
  %248 = icmp ne i32 %247, 0
  br i1 %248, label %249, label %253

249:                                              ; preds = %246
  %250 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %63)
  %251 = load i32, ptr %48, align 4, !tbaa !31
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %250, i32 noundef 5, i32 noundef 5, ptr noundef @.str, i32 noundef %251)
  %252 = load i32, ptr %48, align 4, !tbaa !31
  store i32 %252, ptr %24, align 4
  store i32 1, ptr %53, align 4
  br label %454

253:                                              ; preds = %246
  %254 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 22
  %255 = call noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %254)
  br i1 %255, label %259, label %256

256:                                              ; preds = %253
  %257 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 23
  %258 = call noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %257)
  br i1 %258, label %259, label %452

259:                                              ; preds = %256, %253
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %260 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 25
  %261 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_19CompoundVectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %260)
  %262 = load ptr, ptr %261, align 8, !tbaa !45
  %263 = getelementptr inbounds ptr, ptr %262, i64 4
  %264 = load ptr, ptr %263, align 8
  %265 = call noundef ptr %264(ptr noundef nonnull align 8 dereferenceable(48) %261, i1 noundef zeroext false)
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef %265)
  %266 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %267 unwind label %348

267:                                              ; preds = %259
  %268 = load ptr, ptr %38, align 8, !tbaa !5
  invoke void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %266, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(205) %268)
          to label %269 unwind label %348

269:                                              ; preds = %267
  %270 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %271 unwind label %348

271:                                              ; preds = %269
  %272 = load ptr, ptr %39, align 8, !tbaa !5
  invoke void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %270, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(205) %272)
          to label %273 unwind label %348

273:                                              ; preds = %271
  %274 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %275 unwind label %348

275:                                              ; preds = %273
  %276 = load ptr, ptr %40, align 8, !tbaa !5
  invoke void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %274, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(205) %276)
          to label %277 unwind label %348

277:                                              ; preds = %275
  %278 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %279 unwind label %348

279:                                              ; preds = %277
  %280 = load ptr, ptr %41, align 8, !tbaa !5
  invoke void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %278, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(205) %280)
          to label %281 unwind label %348

281:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %282 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 25
  %283 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_19CompoundVectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %282)
          to label %284 unwind label %352

284:                                              ; preds = %281
  %285 = load ptr, ptr %283, align 8, !tbaa !45
  %286 = getelementptr inbounds ptr, ptr %285, i64 4
  %287 = load ptr, ptr %286, align 8
  %288 = invoke noundef ptr %287(ptr noundef nonnull align 8 dereferenceable(48) %283, i1 noundef zeroext false)
          to label %289 unwind label %352

289:                                              ; preds = %284
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef %288)
          to label %290 unwind label %352

290:                                              ; preds = %289
  %291 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %292 unwind label %356

292:                                              ; preds = %290
  %293 = load ptr, ptr %42, align 8, !tbaa !5
  invoke void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %291, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(205) %293)
          to label %294 unwind label %356

294:                                              ; preds = %292
  %295 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %296 unwind label %356

296:                                              ; preds = %294
  %297 = load ptr, ptr %43, align 8, !tbaa !5
  invoke void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %295, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(205) %297)
          to label %298 unwind label %356

298:                                              ; preds = %296
  %299 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %300 unwind label %356

300:                                              ; preds = %298
  %301 = load ptr, ptr %44, align 8, !tbaa !5
  invoke void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %299, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(205) %301)
          to label %302 unwind label %356

302:                                              ; preds = %300
  %303 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %304 unwind label %356

304:                                              ; preds = %302
  %305 = load ptr, ptr %45, align 8, !tbaa !5
  invoke void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %303, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(205) %305)
          to label %306 unwind label %356

306:                                              ; preds = %304
  %307 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 23
  %308 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %307)
          to label %309 unwind label %356

309:                                              ; preds = %306
  br i1 %308, label %310, label %383

310:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #7
  %311 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 23
  %312 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %311)
          to label %313 unwind label %360

313:                                              ; preds = %310
  %314 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %312)
          to label %315 unwind label %360

315:                                              ; preds = %313
  store i32 %314, ptr %56, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %316 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #8
          to label %317 unwind label %364

317:                                              ; preds = %315
  %318 = load i32, ptr %56, align 4, !tbaa !13
  invoke void @_ZN10SimTKIpopt16DenseVectorSpaceC2Ei(ptr noundef nonnull align 8 dereferenceable(16) %316, i32 noundef %318)
          to label %319 unwind label %368

319:                                              ; preds = %317
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef %316)
          to label %320 unwind label %364

320:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %321 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %322 unwind label %372

322:                                              ; preds = %320
  %323 = invoke noundef ptr @_ZNK10SimTKIpopt16DenseVectorSpace18MakeNewDenseVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %321)
          to label %324 unwind label %372

324:                                              ; preds = %322
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef %323)
          to label %325 unwind label %372

325:                                              ; preds = %324
  %326 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 23
  %327 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %326)
          to label %328 unwind label %376

328:                                              ; preds = %325
  %329 = invoke noundef nonnull align 8 dereferenceable(265) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %330 unwind label %376

330:                                              ; preds = %328
  %331 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %332 unwind label %376

332:                                              ; preds = %330
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %327, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %329, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %331)
          to label %333 unwind label %376

333:                                              ; preds = %332
  %334 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 21
  %335 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %334)
          to label %336 unwind label %376

336:                                              ; preds = %333
  %337 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %338 unwind label %376

338:                                              ; preds = %336
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveVectorERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89) %335, ptr noundef nonnull align 8 dereferenceable(240) %337)
          to label %339 unwind label %376

339:                                              ; preds = %338
  %340 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 23
  %341 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %340)
          to label %342 unwind label %376

342:                                              ; preds = %339
  %343 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %344 unwind label %376

344:                                              ; preds = %342
  %345 = invoke noundef nonnull align 8 dereferenceable(265) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %346 unwind label %376

346:                                              ; preds = %344
  invoke void @_ZNK10SimTKIpopt6Matrix10MultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %341, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %343, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %345)
          to label %347 unwind label %376

347:                                              ; preds = %346
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  br label %383

348:                                              ; preds = %279, %277, %275, %273, %271, %269, %267, %259
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %51, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %52, align 4
  br label %451

352:                                              ; preds = %289, %284, %281
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %51, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %52, align 4
  br label %450

356:                                              ; preds = %383, %306, %304, %302, %300, %298, %296, %294, %292, %290
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %51, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %52, align 4
  br label %449

360:                                              ; preds = %313, %310
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %51, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %52, align 4
  br label %382

364:                                              ; preds = %319, %315
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %51, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %52, align 4
  br label %381

368:                                              ; preds = %317
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %51, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %52, align 4
  call void @_ZdlPvm(ptr noundef %316, i64 noundef 16) #9
  br label %381

372:                                              ; preds = %324, %322, %320
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %51, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %52, align 4
  br label %380

376:                                              ; preds = %346, %344, %342, %339, %338, %336, %333, %332, %330, %328, %325
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %51, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %52, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #7
  br label %380

380:                                              ; preds = %376, %372
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #7
  br label %381

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

382:                                              ; preds = %381, %360
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  br label %449

383:                                              ; preds = %347, %309
  %384 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 22
  %385 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %384)
          to label %386 unwind label %356

386:                                              ; preds = %383
  br i1 %385, label %387, label %448

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  %388 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 22
  %389 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %388)
          to label %390 unwind label %425

390:                                              ; preds = %387
  %391 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %389)
          to label %392 unwind label %425

392:                                              ; preds = %390
  store i32 %391, ptr %59, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  %393 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #8
          to label %394 unwind label %429

394:                                              ; preds = %392
  %395 = load i32, ptr %59, align 4, !tbaa !13
  invoke void @_ZN10SimTKIpopt16DenseVectorSpaceC2Ei(ptr noundef nonnull align 8 dereferenceable(16) %393, i32 noundef %395)
          to label %396 unwind label %433

396:                                              ; preds = %394
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef %393)
          to label %397 unwind label %429

397:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  %398 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %399 unwind label %437

399:                                              ; preds = %397
  %400 = invoke noundef ptr @_ZNK10SimTKIpopt16DenseVectorSpace18MakeNewDenseVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %398)
          to label %401 unwind label %437

401:                                              ; preds = %399
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef %400)
          to label %402 unwind label %437

402:                                              ; preds = %401
  %403 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 22
  %404 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %403)
          to label %405 unwind label %441

405:                                              ; preds = %402
  %406 = invoke noundef nonnull align 8 dereferenceable(265) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %407 unwind label %441

407:                                              ; preds = %405
  %408 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %409 unwind label %441

409:                                              ; preds = %407
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %404, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %406, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %408)
          to label %410 unwind label %441

410:                                              ; preds = %409
  %411 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 20
  %412 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %411)
          to label %413 unwind label %441

413:                                              ; preds = %410
  %414 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %415 unwind label %441

415:                                              ; preds = %413
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveVectorERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89) %412, ptr noundef nonnull align 8 dereferenceable(240) %414)
          to label %416 unwind label %441

416:                                              ; preds = %415
  %417 = getelementptr inbounds %"class.SimTKIpopt::LowRankAugSystemSolver", ptr %63, i32 0, i32 22
  %418 = invoke noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %417)
          to label %419 unwind label %441

419:                                              ; preds = %416
  %420 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %421 unwind label %441

421:                                              ; preds = %419
  %422 = invoke noundef nonnull align 8 dereferenceable(265) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %423 unwind label %441

423:                                              ; preds = %421
  invoke void @_ZNK10SimTKIpopt6Matrix10MultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %418, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %420, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %422)
          to label %424 unwind label %441

424:                                              ; preds = %423
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br label %448

425:                                              ; preds = %390, %387
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %51, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %52, align 4
  br label %447

429:                                              ; preds = %396, %392
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %51, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %52, align 4
  br label %446

433:                                              ; preds = %394
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %51, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %52, align 4
  call void @_ZdlPvm(ptr noundef %393, i64 noundef 16) #9
  br label %446

437:                                              ; preds = %401, %399, %397
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %51, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %52, align 4
  br label %445

441:                                              ; preds = %423, %421, %419, %416, %415, %413, %410, %409, %407, %405, %402
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %51, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %52, align 4
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  br label %445

445:                                              ; preds = %441, %437
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #7
  br label %446

446:                                              ; preds = %445, %433, %429
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %447

447:                                              ; preds = %446, %425
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br label %449

448:                                              ; preds = %424, %386
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  br label %452

449:                                              ; preds = %447, %382, %356
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #7
  br label %450

450:                                              ; preds = %449, %352
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %451

451:                                              ; preds = %450, %348
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  br label %456

452:                                              ; preds = %448, %256
  %453 = load i32, ptr %48, align 4, !tbaa !31
  store i32 %453, ptr %24, align 4
  store i32 1, ptr %53, align 4
  br label %454

454:                                              ; preds = %452, %249, %130
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  %455 = load i32, ptr %24, align 4
  ret i32 %455

456:                                              ; preds = %451, %88
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %457

457:                                              ; preds = %456
  %458 = load ptr, ptr %51, align 8
  %459 = load i32, ptr %52, align 4
  %460 = insertvalue { ptr, i32 } poison, ptr %458, 0
  %461 = insertvalue { ptr, i32 } %460, i32 %459, 1
  resume { ptr, i32 } %461
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265), i32 noundef, ptr noundef nonnull align 8 dereferenceable(205)) #6

declare void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265), i32 noundef, ptr noundef nonnull align 8 dereferenceable(205)) #6

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

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

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

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

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

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

declare void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_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)) #6

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

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

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

declare void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveVectorERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(240)) #6

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)) #6

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 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 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 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 #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { "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 }
attributes #8 = { builtin allocsize(0) }
attributes #9 = { 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, !12, i64 144}
!16 = !{!"_ZTSN10SimTKIpopt22LowRankAugSystemSolverE", !17, i64 0, !24, 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, !25, i64 152, !25, i64 160, !26, i64 168, !26, i64 176, !27, i64 184, !28, i64 192, !14, i64 200}
!17 = !{!"_ZTSN10SimTKIpopt15AugSystemSolverE", !18, i64 0}
!18 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !19, i64 0, !20, i64 16, !21, i64 24, !22, i64 32, !23, i64 40, !12, i64 48}
!19 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !14, i64 8}
!20 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !6, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !6, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !6, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEE", !6, i64 0}
!25 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEE", !6, i64 0}
!26 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEE", !6, i64 0}
!27 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_10DiagMatrixEEE", !6, i64 0}
!28 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_19CompoundVectorSpaceEEE", !6, i64 0}
!29 = !{i8 0, i8 2}
!30 = !{}
!31 = !{!32, !32, i64 0}
!32 = !{!"_ZTSN10SimTKIpopt16ESymSolverStatusE", !7, i64 0}
!33 = !{!16, !14, i64 64}
!34 = !{!16, !10, i64 72}
!35 = !{!16, !14, i64 80}
!36 = !{!16, !10, i64 88}
!37 = !{!16, !14, i64 96}
!38 = !{!16, !10, i64 104}
!39 = !{!16, !14, i64 112}
!40 = !{!16, !14, i64 116}
!41 = !{!16, !10, i64 120}
!42 = !{!16, !14, i64 128}
!43 = !{!16, !14, i64 132}
!44 = !{!16, !10, i64 136}
!45 = !{!46, !46, i64 0}
!46 = !{!"vtable pointer", !8, i64 0}
!47 = !{!16, !14, i64 200}


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

@.str = external hidden unnamed_addr constant [83 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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_10DiagMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN10SimTKIpopt22LowRankAugSystemSolver5SolveEPKNS_9SymMatrixEdPKNS_6VectorEdS6_dPKNS_6MatrixES6_dS9_S6_dRS5_SA_SA_SA_RS4_SB_SB_SB_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 %7, ptr noundef %8, double noundef %9, ptr noundef %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(205) %17, ptr noundef nonnull align 8 dereferenceable(205) %18, ptr noundef nonnull align 8 dereferenceable(205) %19, ptr noundef nonnull align 8 dereferenceable(205) %20, i1 noundef zeroext %21, i32 noundef %22) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %24 = alloca %"class.SimTKIpopt::SmartPtr.47", align 8
  %25 = alloca %"class.SimTKIpopt::SmartPtr.49", align 8
  %26 = alloca %"class.SimTKIpopt::SmartPtr.49", align 8
  %27 = alloca %"class.SimTKIpopt::SmartPtr.55", align 8
  %28 = alloca %"class.SimTKIpopt::SmartPtr.56", align 8
  %29 = alloca %"class.SimTKIpopt::SmartPtr.55", align 8
  %30 = alloca %"class.SimTKIpopt::SmartPtr.56", align 8
  %31 = getelementptr inbounds i8, ptr %0, i64 144
  %32 = load i8, ptr %31, align 8, !tbaa !5, !range !25, !noundef !26
  %33 = trunc nuw i8 %32 to i1
  br i1 %33, label %34, label %49

34:                                               ; preds = %23
  %35 = tail call noundef i32 @_ZNK10SimTKIpopt6Vector3DimEv(ptr noundef nonnull align 8 dereferenceable(205) %13)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  %36 = tail call noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #8
  invoke void @_ZN10SimTKIpopt15DiagMatrixSpaceC2Ei(ptr noundef nonnull align 8 dereferenceable(20) %36, i32 noundef %35)
          to label %37 unwind label %44

37:                                               ; preds = %34
  call void @_ZN10SimTKIpopt8SmartPtrINS_15DiagMatrixSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull %36)
  %38 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_15DiagMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
  %39 = invoke noundef ptr @_ZNK10SimTKIpopt15DiagMatrixSpace17MakeNewDiagMatrixEv(ptr noundef nonnull align 8 dereferenceable(20) %38)
          to label %40 unwind label %46

40:                                               ; preds = %37
  %41 = getelementptr inbounds i8, ptr %0, i64 184
  %42 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN10SimTKIpopt8SmartPtrINS_10DiagMatrixEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef %39)
          to label %43 unwind label %46

43:                                               ; preds = %40
  call void @_ZN10SimTKIpopt8SmartPtrINS_15DiagMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  %.pre = load i8, ptr %31, align 8, !tbaa !5, !range !25
  br label %49

44:                                               ; preds = %34
  %45 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %36, i64 noundef 24) #9
  br label %48

46:                                               ; preds = %40, %37
  %47 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_15DiagMatrixSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  br label %48

48:                                               ; preds = %46, %44
  %.pn = phi { ptr, i32 } [ %47, %46 ], [ %45, %44 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  br label %233

49:                                               ; preds = %43, %23
  %50 = phi i8 [ %.pre, %43 ], [ %32, %23 ]
  %51 = trunc nuw i8 %50 to i1
  br i1 %51, label %54, label %52

52:                                               ; preds = %49
  %53 = call noundef zeroext i1 @_ZN10SimTKIpopt22LowRankAugSystemSolver29AugmentedSystemRequiresChangeEPKNS_9SymMatrixEdPKNS_6VectorEdS6_dRKNS_6MatrixES6_dS9_S6_d(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)
  br i1 %53, label %54, label %84

54:                                               ; preds = %52, %49
  %55 = call 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 %21, i32 noundef %22)
  %.not = icmp eq i32 %55, 0
  br i1 %.not, label %56, label %232

56:                                               ; preds = %54
  %57 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %1)
  %58 = getelementptr inbounds i8, ptr %0, i64 64
  store i32 %57, ptr %58, align 8, !tbaa !27
  %59 = getelementptr inbounds i8, ptr %0, i64 72
  store double %2, ptr %59, align 8, !tbaa !28
  %.not110 = icmp eq ptr %3, null
  br i1 %.not110, label %62, label %60

60:                                               ; preds = %56
  %61 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %3)
  br label %62

62:                                               ; preds = %56, %60
  %.sink = phi i32 [ %61, %60 ], [ 0, %56 ]
  %63 = getelementptr inbounds i8, ptr %0, i64 80
  store i32 %.sink, ptr %63, align 8
  %64 = getelementptr inbounds i8, ptr %0, i64 88
  store double %4, ptr %64, align 8, !tbaa !29
  %.not111 = icmp eq ptr %5, null
  br i1 %.not111, label %67, label %65

65:                                               ; preds = %62
  %66 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %5)
  br label %67

67:                                               ; preds = %62, %65
  %.sink127 = phi i32 [ %66, %65 ], [ 0, %62 ]
  %68 = getelementptr inbounds i8, ptr %0, i64 96
  store i32 %.sink127, ptr %68, align 8
  %69 = getelementptr inbounds i8, ptr %0, i64 104
  store double %6, ptr %69, align 8, !tbaa !30
  %70 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %7)
  %71 = getelementptr inbounds i8, ptr %0, i64 112
  store i32 %70, ptr %71, align 8, !tbaa !31
  %.not112 = icmp eq ptr %8, null
  br i1 %.not112, label %74, label %72

72:                                               ; preds = %67
  %73 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %8)
  br label %74

74:                                               ; preds = %67, %72
  %.sink128 = phi i32 [ %73, %72 ], [ 0, %67 ]
  %75 = getelementptr inbounds i8, ptr %0, i64 116
  store i32 %.sink128, ptr %75, align 4
  %76 = getelementptr inbounds i8, ptr %0, i64 120
  store double %9, ptr %76, align 8, !tbaa !32
  %77 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %10)
  %78 = getelementptr inbounds i8, ptr %0, i64 128
  store i32 %77, ptr %78, align 8, !tbaa !33
  %.not113 = icmp eq ptr %11, null
  br i1 %.not113, label %81, label %79

79:                                               ; preds = %74
  %80 = call noundef i32 @_ZNK10SimTKIpopt12TaggedObject6GetTagEv(ptr noundef nonnull align 8 dereferenceable(56) %11)
  br label %81

81:                                               ; preds = %74, %79
  %.sink129 = phi i32 [ %80, %79 ], [ 0, %74 ]
  %82 = getelementptr inbounds i8, ptr %0, i64 132
  store i32 %.sink129, ptr %82, align 4
  %83 = getelementptr inbounds i8, ptr %0, i64 136
  store double %12, ptr %83, align 8, !tbaa !34
  store i8 0, ptr %31, align 8, !tbaa !5
  br label %84

84:                                               ; preds = %81, %52
  %85 = getelementptr inbounds i8, ptr %0, i64 56
  %86 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
  %87 = getelementptr inbounds i8, ptr %0, i64 184
  %88 = call noundef ptr @_ZN10SimTKIpopt9GetRawPtrINS_10DiagMatrixEEEPT_RKNS_8SmartPtrIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %87)
  %89 = load ptr, ptr %86, align 8, !tbaa !35
  %90 = getelementptr inbounds i8, ptr %89, i64 24
  %91 = load ptr, ptr %90, align 8
  %92 = call noundef i32 %91(ptr noundef nonnull align 8 dereferenceable(49) %86, ptr noundef %88, double noundef %2, ptr noundef %3, double noundef %4, ptr noundef %5, double noundef %6, ptr noundef %7, ptr noundef %8, double noundef %9, ptr noundef %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(205) %17, ptr noundef nonnull align 8 dereferenceable(205) %18, ptr noundef nonnull align 8 dereferenceable(205) %19, ptr noundef nonnull align 8 dereferenceable(205) %20, i1 noundef zeroext %21, i32 noundef %22)
  %93 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
  %94 = load ptr, ptr %93, align 8, !tbaa !35
  %95 = getelementptr inbounds i8, ptr %94, i64 48
  %96 = load ptr, ptr %95, align 8
  %97 = call noundef zeroext i1 %96(ptr noundef nonnull align 8 dereferenceable(49) %93)
  br i1 %97, label %98, label %105

98:                                               ; preds = %84
  %99 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
  %100 = load ptr, ptr %99, align 8, !tbaa !35
  %101 = getelementptr inbounds i8, ptr %100, i64 40
  %102 = load ptr, ptr %101, align 8
  %103 = call noundef i32 %102(ptr noundef nonnull align 8 dereferenceable(49) %99)
  %104 = getelementptr inbounds i8, ptr %0, i64 200
  store i32 %103, ptr %104, align 8, !tbaa !37
  br label %105

105:                                              ; preds = %98, %84
  %.not114 = icmp eq i32 %92, 0
  br i1 %.not114, label %108, label %106

106:                                              ; preds = %105
  %107 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %107, i32 noundef 5, i32 noundef 5, ptr noundef nonnull @.str, i32 noundef %92)
  br label %232

108:                                              ; preds = %105
  %109 = getelementptr inbounds i8, ptr %0, i64 168
  %110 = call noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %109)
  br i1 %110, label %114, label %111

111:                                              ; preds = %108
  %112 = getelementptr inbounds i8, ptr %0, i64 176
  %113 = call noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %112)
  br i1 %113, label %114, label %232

114:                                              ; preds = %111, %108
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  %115 = getelementptr inbounds i8, ptr %0, i64 192
  %116 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_19CompoundVectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %115)
  %117 = load ptr, ptr %116, align 8, !tbaa !35
  %118 = getelementptr inbounds i8, ptr %117, i64 32
  %119 = load ptr, ptr %118, align 8
  %120 = call noundef ptr %119(ptr noundef nonnull align 8 dereferenceable(48) %116, i1 noundef zeroext false)
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef %120)
  %121 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  invoke void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %121, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(205) %13)
          to label %122 unwind label %171

122:                                              ; preds = %114
  %123 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  invoke void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %123, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(205) %14)
          to label %124 unwind label %171

124:                                              ; preds = %122
  %125 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  invoke void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %125, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(205) %15)
          to label %126 unwind label %171

126:                                              ; preds = %124
  %127 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  invoke void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %127, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(205) %16)
          to label %128 unwind label %171

128:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  %129 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrIKNS_19CompoundVectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %115)
  %130 = load ptr, ptr %129, align 8, !tbaa !35
  %131 = getelementptr inbounds i8, ptr %130, i64 32
  %132 = load ptr, ptr %131, align 8
  %133 = invoke noundef ptr %132(ptr noundef nonnull align 8 dereferenceable(48) %129, i1 noundef zeroext false)
          to label %134 unwind label %173

134:                                              ; preds = %128
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef %133)
          to label %135 unwind label %173

135:                                              ; preds = %134
  %136 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
  invoke void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %136, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(205) %17)
          to label %137 unwind label %175

137:                                              ; preds = %135
  %138 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
  invoke void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %138, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(205) %18)
          to label %139 unwind label %175

139:                                              ; preds = %137
  %140 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
  invoke void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %140, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(205) %19)
          to label %141 unwind label %175

141:                                              ; preds = %139
  %142 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
  invoke void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265) %142, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(205) %20)
          to label %143 unwind label %175

143:                                              ; preds = %141
  %144 = getelementptr inbounds i8, ptr %0, i64 176
  %145 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %144)
          to label %146 unwind label %175

146:                                              ; preds = %143
  br i1 %145, label %147, label %189

147:                                              ; preds = %146
  %148 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %144)
  %149 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %148)
          to label %150 unwind label %177

150:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  %151 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #8
          to label %152 unwind label %179

152:                                              ; preds = %150
  invoke void @_ZN10SimTKIpopt16DenseVectorSpaceC2Ei(ptr noundef nonnull align 8 dereferenceable(16) %151, i32 noundef %149)
          to label %153 unwind label %181

153:                                              ; preds = %152
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull %151)
          to label %154 unwind label %179

154:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  %155 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %27)
  %156 = invoke noundef ptr @_ZNK10SimTKIpopt16DenseVectorSpace18MakeNewDenseVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %155)
          to label %157 unwind label %183

157:                                              ; preds = %154
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef %156)
          to label %158 unwind label %183

158:                                              ; preds = %157
  %159 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %144)
  %160 = call noundef nonnull align 8 dereferenceable(265) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  %161 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %159, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %160, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %161)
          to label %162 unwind label %185

162:                                              ; preds = %158
  %163 = getelementptr inbounds i8, ptr %0, i64 160
  %164 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %163)
  %165 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveVectorERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89) %164, ptr noundef nonnull align 8 dereferenceable(240) %165)
          to label %166 unwind label %185

166:                                              ; preds = %162
  %167 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %144)
  %168 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
  %169 = call noundef nonnull align 8 dereferenceable(265) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
  invoke void @_ZNK10SimTKIpopt6Matrix10MultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %167, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %168, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %169)
          to label %170 unwind label %185

170:                                              ; preds = %166
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  br label %189

171:                                              ; preds = %126, %124, %122, %114
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %231

173:                                              ; preds = %134, %128
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %230

175:                                              ; preds = %189, %143, %141, %139, %137, %135
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %229

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

179:                                              ; preds = %153, %150
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %188

181:                                              ; preds = %152
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %151, i64 noundef 16) #9
  br label %188

183:                                              ; preds = %157, %154
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %187

185:                                              ; preds = %166, %162, %158
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br label %187

187:                                              ; preds = %185, %183
  %.pn115 = phi { ptr, i32 } [ %186, %185 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  br label %188

188:                                              ; preds = %187, %181, %179
  %.pn115.pn = phi { ptr, i32 } [ %.pn115, %187 ], [ %180, %179 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  br label %229

189:                                              ; preds = %170, %146
  %190 = invoke noundef zeroext i1 @_ZN10SimTKIpopt7IsValidINS_17MultiVectorMatrixEEEbRKNS_8SmartPtrIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %109)
          to label %191 unwind label %175

191:                                              ; preds = %189
  br i1 %190, label %192, label %228

192:                                              ; preds = %191
  %193 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %109)
  %194 = invoke noundef i32 @_ZNK10SimTKIpopt6Matrix5NColsEv(ptr noundef nonnull align 8 dereferenceable(69) %193)
          to label %195 unwind label %216

195:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  %196 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #8
          to label %197 unwind label %218

197:                                              ; preds = %195
  invoke void @_ZN10SimTKIpopt16DenseVectorSpaceC2Ei(ptr noundef nonnull align 8 dereferenceable(16) %196, i32 noundef %194)
          to label %198 unwind label %220

198:                                              ; preds = %197
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull %196)
          to label %199 unwind label %218

199:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  %200 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %29)
  %201 = invoke noundef ptr @_ZNK10SimTKIpopt16DenseVectorSpace18MakeNewDenseVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %200)
          to label %202 unwind label %222

202:                                              ; preds = %199
  invoke void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef %201)
          to label %203 unwind label %222

203:                                              ; preds = %202
  %204 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %109)
  %205 = call noundef nonnull align 8 dereferenceable(265) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  %206 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
  invoke void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %204, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %205, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %206)
          to label %207 unwind label %224

207:                                              ; preds = %203
  %208 = getelementptr inbounds i8, ptr %0, i64 152
  %209 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %208)
  %210 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
  invoke void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveVectorERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89) %209, ptr noundef nonnull align 8 dereferenceable(240) %210)
          to label %211 unwind label %224

211:                                              ; preds = %207
  %212 = call noundef ptr @_ZNK10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %109)
  %213 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK10SimTKIpopt8SmartPtrINS_11DenseVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
  %214 = call noundef nonnull align 8 dereferenceable(265) ptr @_ZNK10SimTKIpopt8SmartPtrINS_14CompoundVectorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
  invoke void @_ZNK10SimTKIpopt6Matrix10MultVectorEdRKNS_6VectorEdRS1_(ptr noundef nonnull align 8 dereferenceable(69) %212, double noundef -1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %213, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(205) %214)
          to label %215 unwind label %224

215:                                              ; preds = %211
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %228

216:                                              ; preds = %192
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %229

218:                                              ; preds = %198, %195
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %227

220:                                              ; preds = %197
  %221 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %196, i64 noundef 16) #9
  br label %227

222:                                              ; preds = %202, %199
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %226

224:                                              ; preds = %211, %207, %203
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN10SimTKIpopt8SmartPtrINS_11DenseVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br label %226

226:                                              ; preds = %224, %222
  %.pn119 = phi { ptr, i32 } [ %225, %224 ], [ %223, %222 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  br label %227

227:                                              ; preds = %226, %220, %218
  %.pn119.pn = phi { ptr, i32 } [ %.pn119, %226 ], [ %219, %218 ], [ %221, %220 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %229

228:                                              ; preds = %215, %191
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  br label %232

229:                                              ; preds = %216, %227, %177, %188, %175
  %.pn119.pn.pn.pn = phi { ptr, i32 } [ %176, %175 ], [ %.pn115.pn, %188 ], [ %178, %177 ], [ %.pn119.pn, %227 ], [ %217, %216 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br label %230

230:                                              ; preds = %229, %173
  %.pn119.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn.pn, %229 ], [ %174, %173 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  br label %231

231:                                              ; preds = %230, %171
  %.pn119.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn.pn.pn, %230 ], [ %172, %171 ]
  call void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  br label %233

232:                                              ; preds = %111, %228, %54, %106
  %.0 = phi i32 [ %92, %106 ], [ %55, %54 ], [ 0, %228 ], [ 0, %111 ]
  ret i32 %.0

233:                                              ; preds = %231, %48
  %.pn119.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn.pn.pn.pn, %231 ], [ %.pn, %48 ]
  resume { ptr, i32 } %.pn119.pn.pn.pn.pn.pn.pn
}

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrINS_15DiagMatrixSpaceEEC2EPS1_(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_15DiagMatrixSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEEC2EPS1_(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_14CompoundVectorEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

declare void @_ZN10SimTKIpopt14CompoundVector7SetCompEiRKNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265), i32 noundef, ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #6

declare void @_ZN10SimTKIpopt14CompoundVector15SetCompNonConstEiRNS_6VectorE(ptr noundef nonnull align 8 dereferenceable(265), i32 noundef, ptr noundef nonnull align 8 dereferenceable(205)) local_unnamed_addr #6

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrINS_16DenseVectorSpaceEEC2EPS1_(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_16DenseVectorSpaceEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

declare void @_ZNK10SimTKIpopt6Matrix15TransMultVectorEdRKNS_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 #6

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

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

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

declare void @_ZNK10SimTKIpopt14DenseGenMatrix19CholeskySolveVectorERNS_11DenseVectorE(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #6

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 #6

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10SimTKIpopt8SmartPtrINS_14CompoundVectorEED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 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 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 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 #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { "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 }
attributes #8 = { builtin allocsize(0) }
attributes #9 = { 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, !18, i64 144}
!6 = !{!"_ZTSN10SimTKIpopt22LowRankAugSystemSolverE", !7, i64 0, !19, i64 56, !10, i64 64, !20, i64 72, !10, i64 80, !20, i64 88, !10, i64 96, !20, i64 104, !10, i64 112, !10, i64 116, !20, i64 120, !10, i64 128, !10, i64 132, !20, i64 136, !18, i64 144, !21, i64 152, !21, i64 160, !22, i64 168, !22, i64 176, !23, i64 184, !24, i64 192, !10, i64 200}
!7 = !{!"_ZTSN10SimTKIpopt15AugSystemSolverE", !8, i64 0}
!8 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !9, i64 0, !13, i64 16, !15, i64 24, !16, i64 32, !17, i64 40, !18, i64 48}
!9 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !10, i64 8}
!10 = !{!"int", !11, i64 0}
!11 = !{!"omnipotent char", !12, i64 0}
!12 = !{!"Simple C++ TBAA"}
!13 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !14, i64 0}
!14 = !{!"any pointer", !11, i64 0}
!15 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !14, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !14, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !14, i64 0}
!18 = !{!"bool", !11, i64 0}
!19 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_15AugSystemSolverEEE", !14, i64 0}
!20 = !{!"double", !11, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14DenseGenMatrixEEE", !14, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_17MultiVectorMatrixEEE", !14, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_10DiagMatrixEEE", !14, i64 0}
!24 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_19CompoundVectorSpaceEEE", !14, i64 0}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!6, !10, i64 64}
!28 = !{!6, !20, i64 72}
!29 = !{!6, !20, i64 88}
!30 = !{!6, !20, i64 104}
!31 = !{!6, !10, i64 112}
!32 = !{!6, !20, i64 120}
!33 = !{!6, !10, i64 128}
!34 = !{!6, !20, i64 136}
!35 = !{!36, !36, i64 0}
!36 = !{!"vtable pointer", !12, i64 0}
!37 = !{!6, !10, i64 200}


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