; LLVM IR from Derek-TH-Wang/quadruped_ctrl :: src/MPC_Ctrl (ConvexMPCLocomotion)

; 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"

%struct.StateEstimate = type { %"class.Eigen::Matrix.3", %"class.Eigen::Matrix", %"class.Eigen::Matrix", [8 x i8], %"class.Eigen::Matrix.3", %"class.Eigen::Matrix", %"class.Eigen::Matrix.29", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", [4 x i8] }
%"class.Eigen::Matrix.3" = type { %"class.Eigen::PlainObjectBase.4" }
%"class.Eigen::PlainObjectBase.4" = type { %"class.Eigen::DenseStorage.11" }
%"class.Eigen::DenseStorage.11" = type { %"struct.Eigen::internal::plain_array.12" }
%"struct.Eigen::internal::plain_array.12" = type { [4 x float] }
%"class.Eigen::Matrix.29" = type { %"class.Eigen::PlainObjectBase.30" }
%"class.Eigen::PlainObjectBase.30" = type { %"class.Eigen::DenseStorage.37" }
%"class.Eigen::DenseStorage.37" = type { %"struct.Eigen::internal::plain_array.38" }
%"struct.Eigen::internal::plain_array.38" = type { [9 x float] }
%"class.Eigen::Matrix" = type { %"class.Eigen::PlainObjectBase" }
%"class.Eigen::PlainObjectBase" = type { %"class.Eigen::DenseStorage" }
%"class.Eigen::DenseStorage" = type { %"struct.Eigen::internal::plain_array" }
%"struct.Eigen::internal::plain_array" = type { [3 x float] }
%"class.std::vector.82" = type { %"struct.std::_Vector_base.83" }
%"struct.std::_Vector_base.83" = type { %"struct.std::_Vector_base<ContactState, std::allocator<ContactState>>::_Vector_impl" }
%"struct.std::_Vector_base<ContactState, std::allocator<ContactState>>::_Vector_impl" = type { %"struct.std::_Vector_base<ContactState, std::allocator<ContactState>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ContactState, std::allocator<ContactState>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Eigen::Matrix.296" = type { %"class.Eigen::PlainObjectBase.297" }
%"class.Eigen::PlainObjectBase.297" = type { %"class.Eigen::DenseStorage.304" }
%"class.Eigen::DenseStorage.304" = type { %"struct.Eigen::internal::plain_array.305" }
%"struct.Eigen::internal::plain_array.305" = type { [12 x float] }
%"class.Eigen::Product.284" = type { %"class.Eigen::CwiseUnaryOp", ptr }
%"class.Eigen::CwiseUnaryOp" = type <{ ptr, [8 x i8] }>
%class.ConvexMPCLocomotion = type { i8, %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", [4 x %"class.Eigen::Matrix"], [4 x %"class.Eigen::Matrix"], [4 x %"class.Eigen::Matrix"], [4 x %"class.Eigen::Matrix"], %"class.Eigen::Matrix.3", float, float, float, float, float, float, float, float, float, float, i32, i32, i32, float, float, i32, [4 x %"class.Eigen::Matrix"], %"class.Eigen::Matrix.3", [4 x %class.FootSwingTrajectory], %class.OffsetDurationGait, %class.OffsetDurationGait, %class.OffsetDurationGait, %class.OffsetDurationGait, %class.OffsetDurationGait, %class.OffsetDurationGait, %class.OffsetDurationGait, %class.OffsetDurationGait, %class.OffsetDurationGait, %class.OffsetDurationGait, %class.OffsetDurationGait, %"class.Eigen::Matrix.29", %"class.Eigen::Matrix.29", %"class.Eigen::Matrix.29", %"class.Eigen::Matrix.29", %"class.Eigen::Matrix.29", i8, [4 x i8], [4 x float], [6 x float], i32, i32, %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", float, [4 x %"class.Eigen::Matrix"], [12 x i8], %struct.CMPC_Result, [720 x float], float, %struct.CMPC_Jump, %"class.std::vector", %class.SparseCMPC }
%class.FootSwingTrajectory = type { %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", float }
%class.OffsetDurationGait = type <{ %class.Gait, ptr, %"class.Eigen::Array", %"class.Eigen::Array", %"class.Eigen::Array.21", %"class.Eigen::Array.21", i32, i32, float, [4 x i8] }>
%class.Gait = type { ptr, %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.Eigen::Array" = type { %"class.Eigen::PlainObjectBase.13" }
%"class.Eigen::PlainObjectBase.13" = type { %"class.Eigen::DenseStorage.19" }
%"class.Eigen::DenseStorage.19" = type { %"struct.Eigen::internal::plain_array.20" }
%"struct.Eigen::internal::plain_array.20" = type { [4 x i32] }
%"class.Eigen::Array.21" = type { %"class.Eigen::PlainObjectBase.22" }
%"class.Eigen::PlainObjectBase.22" = type { %"class.Eigen::DenseStorage.11" }
%struct.CMPC_Result = type { [4 x %struct.LegControllerCommand], %"class.Eigen::Matrix.3" }
%struct.LegControllerCommand = type { %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix.29", %"class.Eigen::Matrix.29", %"class.Eigen::Matrix.29", %"class.Eigen::Matrix.29" }
%struct.CMPC_Jump = type { i8, i8, i8, i32, i32, i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Eigen::Matrix<double, 12, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 1>>>::_Vector_impl" }
%"struct.std::_Vector_base<Eigen::Matrix<double, 12, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Eigen::Matrix<double, 12, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Eigen::Matrix<double, 12, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.SparseCMPC = type <{ %"class.Eigen::Matrix.42", [8 x i8], %"class.Eigen::Matrix.52", double, double, double, double, %"class.Eigen::Matrix.62", %"class.Eigen::Matrix.62", %"class.Eigen::Matrix.62", %"class.Eigen::Matrix.62", %"class.Eigen::Matrix.72", %"class.Eigen::Matrix.52", %"class.Eigen::Matrix.52", %"class.Eigen::Matrix.52", %"class.std::vector.82", %"class.std::vector", %"class.std::vector.87", %"class.std::vector.92", %"class.std::vector.98", %"class.std::vector.103", %"class.std::vector.109", %"class.std::vector.109", %"class.std::vector.114", %"class.std::vector.114", %"class.std::vector.87", %"class.std::vector.87", %"class.std::vector.87", %"class.Eigen::Matrix.119", i32, i32, i32, [12 x i8] }>
%"class.Eigen::Matrix.42" = type { %"class.Eigen::PlainObjectBase.43" }
%"class.Eigen::PlainObjectBase.43" = type { %"class.Eigen::DenseStorage.50" }
%"class.Eigen::DenseStorage.50" = type { %"struct.Eigen::internal::plain_array.51" }
%"struct.Eigen::internal::plain_array.51" = type { [9 x double] }
%"class.Eigen::Matrix.62" = type { %"class.Eigen::PlainObjectBase.63" }
%"class.Eigen::PlainObjectBase.63" = type { %"class.Eigen::DenseStorage.70" }
%"class.Eigen::DenseStorage.70" = type { %"struct.Eigen::internal::plain_array.71" }
%"struct.Eigen::internal::plain_array.71" = type { [3 x double] }
%"class.Eigen::Matrix.72" = type { %"class.Eigen::PlainObjectBase.73" }
%"class.Eigen::PlainObjectBase.73" = type { %"class.Eigen::DenseStorage.80" }
%"class.Eigen::DenseStorage.80" = type { %"struct.Eigen::internal::plain_array.81" }
%"struct.Eigen::internal::plain_array.81" = type { [4 x double] }
%"class.Eigen::Matrix.52" = type { %"class.Eigen::PlainObjectBase.53" }
%"class.Eigen::PlainObjectBase.53" = type { %"class.Eigen::DenseStorage.60" }
%"class.Eigen::DenseStorage.60" = type { %"struct.Eigen::internal::plain_array.61" }
%"struct.Eigen::internal::plain_array.61" = type { [12 x double] }
%"class.std::vector.92" = type { %"struct.std::_Vector_base.93" }
%"struct.std::_Vector_base.93" = type { %"struct.std::_Vector_base<Eigen::Matrix<double, 12, 12>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 12>>>::_Vector_impl" }
%"struct.std::_Vector_base<Eigen::Matrix<double, 12, 12>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 12>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Eigen::Matrix<double, 12, 12>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 12>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Eigen::Matrix<double, 12, 12>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 12>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.98" = type { %"struct.std::_Vector_base.99" }
%"struct.std::_Vector_base.99" = type { %"struct.std::_Vector_base<BblockID, std::allocator<BblockID>>::_Vector_impl" }
%"struct.std::_Vector_base<BblockID, std::allocator<BblockID>>::_Vector_impl" = type { %"struct.std::_Vector_base<BblockID, std::allocator<BblockID>>::_Vector_impl_data" }
%"struct.std::_Vector_base<BblockID, std::allocator<BblockID>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.103" = type { %"struct.std::_Vector_base.104" }
%"struct.std::_Vector_base.104" = type { %"struct.std::_Vector_base<Eigen::Matrix<double, 12, 3>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 3>>>::_Vector_impl" }
%"struct.std::_Vector_base<Eigen::Matrix<double, 12, 3>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 3>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Eigen::Matrix<double, 12, 3>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 3>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Eigen::Matrix<double, 12, 3>, Eigen::aligned_allocator<Eigen::Matrix<double, 12, 3>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.109" = type { %"struct.std::_Vector_base.110" }
%"struct.std::_Vector_base.110" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.114" = type { %"struct.std::_Vector_base.115" }
%"struct.std::_Vector_base.115" = type { %"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.87" = type { %"struct.std::_Vector_base.88" }
%"struct.std::_Vector_base.88" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Eigen::Matrix.119" = type { %"class.Eigen::PlainObjectBase.120" }
%"class.Eigen::PlainObjectBase.120" = type { %"class.Eigen::DenseStorage.127" }
%"class.Eigen::DenseStorage.127" = type { ptr, i64 }

@.str.20 = external hidden unnamed_addr constant [24 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

declare i32 @printf(ptr noundef, ...) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 16 dereferenceable(172) ptr @_ZN23StateEstimatorContainerIfE9getResultEv(ptr noundef nonnull align 16 dereferenceable(96)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN13StateEstimateIfEC2ERKS0_(ptr noundef nonnull align 16 dereferenceable(172), ptr noundef nonnull align 16 dereferenceable(172)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN19ConvexMPCLocomotion14solveSparseMPCEPiR23StateEstimatorContainerIfE(ptr noundef nonnull align 16 dereferenceable(7184) %0, ptr noundef %1, ptr noundef nonnull align 16 dereferenceable(96) %2) #4 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %struct.StateEstimate, align 16
  %8 = alloca %"class.std::vector.82", align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %"class.Eigen::Matrix.296", align 16
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %"class.Eigen::Matrix", align 4
  %19 = alloca %"class.Eigen::Matrix", align 4
  %20 = alloca %"class.Eigen::Matrix.3", align 16
  %21 = alloca %"class.Eigen::Matrix", align 4
  %22 = alloca %"class.Eigen::Matrix.296", align 16
  %23 = alloca i32, align 4
  %24 = alloca %"class.Eigen::Matrix", align 4
  %25 = alloca %"class.Eigen::Product.284", align 8
  %26 = alloca %"class.Eigen::CwiseUnaryOp", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %27 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 176, ptr %7) #5
  %28 = load ptr, ptr %6, align 8, !tbaa !5
  %29 = call noundef nonnull align 16 dereferenceable(172) ptr @_ZN23StateEstimatorContainerIfE9getResultEv(ptr noundef nonnull align 16 dereferenceable(96) %28)
  call void @_ZN13StateEstimateIfEC2ERKS0_(ptr noundef nonnull align 16 dereferenceable(172) %7, ptr noundef nonnull align 16 dereferenceable(172) %29)
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #5
  call void @_ZNSt6vectorI12ContactStateSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %30

30:                                               ; preds = %63, %3
  %31 = load i32, ptr %9, align 4, !tbaa !9
  %32 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 22
  %33 = load i32, ptr %32, align 4, !tbaa !11
  %34 = icmp slt i32 %31, %33
  br i1 %34, label %36, label %35

35:                                               ; preds = %30
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  br label %70

36:                                               ; preds = %30
  %37 = load ptr, ptr %5, align 8, !tbaa !5
  %38 = load i32, ptr %9, align 4, !tbaa !9
  %39 = mul nsw i32 %38, 4
  %40 = add nsw i32 %39, 0
  %41 = sext i32 %40 to i64
  %42 = getelementptr inbounds i32, ptr %37, i64 %41
  %43 = load ptr, ptr %5, align 8, !tbaa !5
  %44 = load i32, ptr %9, align 4, !tbaa !9
  %45 = mul nsw i32 %44, 4
  %46 = add nsw i32 %45, 1
  %47 = sext i32 %46 to i64
  %48 = getelementptr inbounds i32, ptr %43, i64 %47
  %49 = load ptr, ptr %5, align 8, !tbaa !5
  %50 = load i32, ptr %9, align 4, !tbaa !9
  %51 = mul nsw i32 %50, 4
  %52 = add nsw i32 %51, 2
  %53 = sext i32 %52 to i64
  %54 = getelementptr inbounds i32, ptr %49, i64 %53
  %55 = load ptr, ptr %5, align 8, !tbaa !5
  %56 = load i32, ptr %9, align 4, !tbaa !9
  %57 = mul nsw i32 %56, 4
  %58 = add nsw i32 %57, 3
  %59 = sext i32 %58 to i64
  %60 = getelementptr inbounds i32, ptr %55, i64 %59
  %61 = invoke noundef nonnull align 1 dereferenceable(4) ptr @_ZNSt6vectorI12ContactStateSaIS0_EE12emplace_backIJRiS4_S4_S4_EEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %62 unwind label %66

62:                                               ; preds = %36
  br label %63

63:                                               ; preds = %62
  %64 = load i32, ptr %9, align 4, !tbaa !9
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr %9, align 4, !tbaa !9
  br label %30, !llvm.loop !93

66:                                               ; preds = %36
  %67 = landingpad { ptr, i32 }
          cleanup
  %68 = extractvalue { ptr, i32 } %67, 0
  store ptr %68, ptr %10, align 8
  %69 = extractvalue { ptr, i32 } %67, 1
  store i32 %69, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  br label %257

70:                                               ; preds = %35
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %71

71:                                               ; preds = %108, %70
  %72 = load i32, ptr %12, align 4, !tbaa !9
  %73 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 22
  %74 = load i32, ptr %73, align 4, !tbaa !11
  %75 = icmp slt i32 %72, %74
  br i1 %75, label %77, label %76

76:                                               ; preds = %71
  store i32 5, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  br label %111

77:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  store i32 0, ptr %14, align 4, !tbaa !9
  br label %78

78:                                               ; preds = %100, %77
  %79 = load i32, ptr %14, align 4, !tbaa !9
  %80 = icmp ult i32 %79, 12
  br i1 %80, label %82, label %81

81:                                               ; preds = %78
  store i32 8, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  br label %107

82:                                               ; preds = %78
  %83 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 59
  %84 = load i32, ptr %12, align 4, !tbaa !9
  %85 = mul nsw i32 %84, 12
  %86 = load i32, ptr %14, align 4, !tbaa !9
  %87 = add i32 %85, %86
  %88 = zext i32 %87 to i64
  %89 = getelementptr inbounds [720 x float], ptr %83, i64 0, i64 %88
  %90 = load float, ptr %89, align 4, !tbaa !95
  %91 = fpext float %90 to double
  %92 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 62
  %93 = load i32, ptr %12, align 4, !tbaa !9
  %94 = sext i32 %93 to i64
  %95 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef %94) #5
  %96 = load i32, ptr %14, align 4, !tbaa !9
  %97 = zext i32 %96 to i64
  %98 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %95, i64 noundef %97)
          to label %99 unwind label %103

99:                                               ; preds = %82
  store double %91, ptr %98, align 8, !tbaa !96
  br label %100

100:                                              ; preds = %99
  %101 = load i32, ptr %14, align 4, !tbaa !9
  %102 = add i32 %101, 1
  store i32 %102, ptr %14, align 4, !tbaa !9
  br label %78, !llvm.loop !97

103:                                              ; preds = %82
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %10, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  br label %257

107:                                              ; preds = %81
  br label %108

108:                                              ; preds = %107
  %109 = load i32, ptr %12, align 4, !tbaa !9
  %110 = add nsw i32 %109, 1
  store i32 %110, ptr %12, align 4, !tbaa !9
  br label %71, !llvm.loop !98

111:                                              ; preds = %76
  call void @llvm.lifetime.start.p0(i64 48, ptr %15) #5
  invoke void @_ZN5Eigen6MatrixIfLi12ELi1ELi0ELi12ELi1EEC2Ev(ptr noundef nonnull align 16 dereferenceable(48) %15)
          to label %112 unwind label %117

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  store i32 0, ptr %16, align 4, !tbaa !9
  br label %113

113:                                              ; preds = %158, %112
  %114 = load i32, ptr %16, align 4, !tbaa !9
  %115 = icmp ult i32 %114, 4
  br i1 %115, label %121, label %116

116:                                              ; preds = %113
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  br label %161

117:                                              ; preds = %180, %178, %175, %171, %170, %168, %166, %164, %161, %111
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %10, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %11, align 4
  br label %256

121:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  store i32 0, ptr %17, align 4, !tbaa !9
  br label %122

122:                                              ; preds = %150, %121
  %123 = load i32, ptr %17, align 4, !tbaa !9
  %124 = icmp ult i32 %123, 3
  br i1 %124, label %126, label %125

125:                                              ; preds = %122
  store i32 14, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  br label %157

126:                                              ; preds = %122
  %127 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 56
  %128 = load i32, ptr %16, align 4, !tbaa !9
  %129 = zext i32 %128 to i64
  %130 = getelementptr inbounds [4 x %"class.Eigen::Matrix"], ptr %127, i64 0, i64 %129
  %131 = load i32, ptr %17, align 4, !tbaa !9
  %132 = zext i32 %131 to i64
  %133 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %130, i64 noundef %132)
          to label %134 unwind label %153

134:                                              ; preds = %126
  %135 = load float, ptr %133, align 4, !tbaa !95
  %136 = getelementptr inbounds %struct.StateEstimate, ptr %7, i32 0, i32 1
  %137 = load i32, ptr %17, align 4, !tbaa !9
  %138 = zext i32 %137 to i64
  %139 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %136, i64 noundef %138)
          to label %140 unwind label %153

140:                                              ; preds = %134
  %141 = load float, ptr %139, align 4, !tbaa !95
  %142 = fsub float %135, %141
  %143 = load i32, ptr %16, align 4, !tbaa !9
  %144 = mul i32 %143, 3
  %145 = load i32, ptr %17, align 4, !tbaa !9
  %146 = add i32 %144, %145
  %147 = zext i32 %146 to i64
  %148 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef %147)
          to label %149 unwind label %153

149:                                              ; preds = %140
  store float %142, ptr %148, align 4, !tbaa !95
  br label %150

150:                                              ; preds = %149
  %151 = load i32, ptr %17, align 4, !tbaa !9
  %152 = add i32 %151, 1
  store i32 %152, ptr %17, align 4, !tbaa !9
  br label %122, !llvm.loop !99

153:                                              ; preds = %140, %134, %126
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %10, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  br label %256

157:                                              ; preds = %125
  br label %158

158:                                              ; preds = %157
  %159 = load i32, ptr %16, align 4, !tbaa !9
  %160 = add i32 %159, 1
  store i32 %160, ptr %16, align 4, !tbaa !9
  br label %113, !llvm.loop !100

161:                                              ; preds = %116
  %162 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 63
  %163 = getelementptr inbounds %struct.StateEstimate, ptr %7, i32 0, i32 1
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %18, ptr noundef nonnull align 4 dereferenceable(12) %163)
          to label %164 unwind label %117

164:                                              ; preds = %161
  %165 = getelementptr inbounds %struct.StateEstimate, ptr %7, i32 0, i32 9
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %19, ptr noundef nonnull align 4 dereferenceable(12) %165)
          to label %166 unwind label %117

166:                                              ; preds = %164
  %167 = getelementptr inbounds %struct.StateEstimate, ptr %7, i32 0, i32 4
  invoke void @_ZN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEC2ERKS1_(ptr noundef nonnull align 16 dereferenceable(16) %20, ptr noundef nonnull align 16 dereferenceable(16) %167)
          to label %168 unwind label %117

168:                                              ; preds = %166
  %169 = getelementptr inbounds %struct.StateEstimate, ptr %7, i32 0, i32 8
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %21, ptr noundef nonnull align 4 dereferenceable(12) %169)
          to label %170 unwind label %117

170:                                              ; preds = %168
  invoke void @_ZN10SparseCMPC5setX0IfEEvN5Eigen6MatrixIT_Li3ELi1ELi0ELi3ELi1EEES4_NS2_IS3_Li4ELi1ELi0ELi4ELi1EEES4_(ptr noundef nonnull align 16 dereferenceable(964) %162, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21)
          to label %171 unwind label %117

171:                                              ; preds = %170
  %172 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 63
  %173 = call noundef ptr @_ZNSt6vectorI12ContactStateSaIS0_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  %174 = call noundef i64 @_ZNKSt6vectorI12ContactStateSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  invoke void @_ZN10SparseCMPC20setContactTrajectoryEP12ContactStatem(ptr noundef nonnull align 16 dereferenceable(964) %172, ptr noundef %173, i64 noundef %174)
          to label %175 unwind label %117

175:                                              ; preds = %171
  %176 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 63
  %177 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 62
  invoke void @_ZN10SparseCMPC18setStateTrajectoryERSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS1_17aligned_allocatorIS3_EEE(ptr noundef nonnull align 16 dereferenceable(964) %176, ptr noundef nonnull align 8 dereferenceable(24) %177)
          to label %178 unwind label %117

178:                                              ; preds = %175
  %179 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 63
  invoke void @_ZN10SparseCMPC7setFeetIfEEvRN5Eigen6MatrixIT_Li12ELi1ELi0ELi12ELi1EEE(ptr noundef nonnull align 16 dereferenceable(964) %179, ptr noundef nonnull align 16 dereferenceable(48) %15)
          to label %180 unwind label %117

180:                                              ; preds = %178
  %181 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 63
  invoke void @_ZN10SparseCMPC3runEv(ptr noundef nonnull align 16 dereferenceable(964) %181)
          to label %182 unwind label %117

182:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 48, ptr %22) #5
  %183 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 63
  invoke void @_ZN10SparseCMPC9getResultEv(ptr dead_on_unwind writable sret(%"class.Eigen::Matrix.296") align 16 %22, ptr noundef nonnull align 16 dereferenceable(964) %183)
          to label %184 unwind label %189

184:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  store i32 0, ptr %23, align 4, !tbaa !9
  br label %185

185:                                              ; preds = %242, %184
  %186 = load i32, ptr %23, align 4, !tbaa !9
  %187 = icmp ult i32 %186, 4
  br i1 %187, label %193, label %188

188:                                              ; preds = %185
  store i32 17, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  br label %254

189:                                              ; preds = %182
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %10, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %11, align 4
  br label %255

193:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 12, ptr %24) #5
  %194 = load i32, ptr %23, align 4, !tbaa !9
  %195 = mul i32 %194, 3
  %196 = zext i32 %195 to i64
  %197 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %22, i64 noundef %196)
          to label %198 unwind label %245

198:                                              ; preds = %193
  %199 = load i32, ptr %23, align 4, !tbaa !9
  %200 = mul i32 %199, 3
  %201 = add i32 %200, 1
  %202 = zext i32 %201 to i64
  %203 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %22, i64 noundef %202)
          to label %204 unwind label %245

204:                                              ; preds = %198
  %205 = load i32, ptr %23, align 4, !tbaa !9
  %206 = mul i32 %205, 3
  %207 = add i32 %206, 2
  %208 = zext i32 %207 to i64
  %209 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %22, i64 noundef %208)
          to label %210 unwind label %245

210:                                              ; preds = %204
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %24, ptr noundef nonnull align 4 dereferenceable(4) %197, ptr noundef nonnull align 4 dereferenceable(4) %203, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %211 unwind label %245

211:                                              ; preds = %210
  %212 = load i32, ptr %23, align 4, !tbaa !9
  %213 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %24, i64 noundef 0)
          to label %214 unwind label %245

214:                                              ; preds = %211
  %215 = load float, ptr %213, align 4, !tbaa !95
  %216 = fpext float %215 to double
  %217 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %24, i64 noundef 1)
          to label %218 unwind label %245

218:                                              ; preds = %214
  %219 = load float, ptr %217, align 4, !tbaa !95
  %220 = fpext float %219 to double
  %221 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %24, i64 noundef 2)
          to label %222 unwind label %245

222:                                              ; preds = %218
  %223 = load float, ptr %221, align 4, !tbaa !95
  %224 = fpext float %223 to double
  %225 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.20, i32 noundef %212, double noundef %216, double noundef %220, double noundef %224)
          to label %226 unwind label %245

226:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #5
  %227 = getelementptr inbounds %struct.StateEstimate, ptr %7, i32 0, i32 6
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEngEv(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseUnaryOp") align 8 %26, ptr noundef nonnull align 1 dereferenceable(1) %227)
          to label %228 unwind label %249

228:                                              ; preds = %226
  invoke void @_ZNK5Eigen10MatrixBaseINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEEEmlINS5_IfLi3ELi1ELi0ELi3ELi1EEEEEKNS_7ProductIS8_T_Li0EEERKNS0_ISD_EE(ptr dead_on_unwind writable sret(%"class.Eigen::Product.284") align 8 %25, ptr noundef nonnull align 1 dereferenceable(1) %26, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %229 unwind label %249

229:                                              ; preds = %228
  %230 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 27
  %231 = load i32, ptr %23, align 4, !tbaa !9
  %232 = zext i32 %231 to i64
  %233 = getelementptr inbounds [4 x %"class.Eigen::Matrix"], ptr %230, i64 0, i64 %232
  %234 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSINS_7ProductINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS0_IfLi3ELi3ELi0ELi3ELi3EEEEES1_Li0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 4 dereferenceable(12) %233, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %235 unwind label %249

235:                                              ; preds = %229
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #5
  %236 = getelementptr inbounds %class.ConvexMPCLocomotion, ptr %27, i32 0, i32 9
  %237 = load i32, ptr %23, align 4, !tbaa !9
  %238 = zext i32 %237 to i64
  %239 = getelementptr inbounds [4 x %"class.Eigen::Matrix"], ptr %236, i64 0, i64 %238
  %240 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %239, ptr noundef nonnull align 4 dereferenceable(12) %24)
          to label %241 unwind label %245

241:                                              ; preds = %235
  call void @llvm.lifetime.end.p0(i64 12, ptr %24) #5
  br label %242

242:                                              ; preds = %241
  %243 = load i32, ptr %23, align 4, !tbaa !9
  %244 = add i32 %243, 1
  store i32 %244, ptr %23, align 4, !tbaa !9
  br label %185, !llvm.loop !101

245:                                              ; preds = %235, %222, %218, %214, %211, %210, %204, %198, %193
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %10, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %11, align 4
  br label %253

249:                                              ; preds = %229, %228, %226
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %10, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #5
  br label %253

253:                                              ; preds = %249, %245
  call void @llvm.lifetime.end.p0(i64 12, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  br label %255

254:                                              ; preds = %188
  call void @llvm.lifetime.end.p0(i64 48, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #5
  call void @_ZNSt6vectorI12ContactStateSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 176, ptr %7) #5
  ret void

255:                                              ; preds = %253, %189
  call void @llvm.lifetime.end.p0(i64 48, ptr %22) #5
  br label %256

256:                                              ; preds = %255, %153, %117
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #5
  br label %257

257:                                              ; preds = %256, %103, %66
  call void @_ZNSt6vectorI12ContactStateSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 176, ptr %7) #5
  br label %258

258:                                              ; preds = %257
  %259 = load ptr, ptr %10, align 8
  %260 = load i32, ptr %11, align 4
  %261 = insertvalue { ptr, i32 } poison, ptr %259, 0
  %262 = insertvalue { ptr, i32 } %261, i32 %260, 1
  resume { ptr, i32 } %262
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEngEv(ptr dead_on_unwind noalias writable sret(%"class.Eigen::CwiseUnaryOp") align 8, ptr noundef nonnull align 1 dereferenceable(1)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK5Eigen10MatrixBaseINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEEEmlINS5_IfLi3ELi1ELi0ELi3ELi1EEEEEKNS_7ProductIS8_T_Li0EEERKNS0_ISD_EE(ptr dead_on_unwind noalias writable sret(%"class.Eigen::Product.284") align 8, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSINS_7ProductINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS0_IfLi3ELi3ELi0ELi3ELi3EEEEES1_Li0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(1)) #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen6MatrixIfLi12ELi1ELi0ELi12ELi1EEC2Ev(ptr noundef nonnull align 16 dereferenceable(48)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SparseCMPC5setX0IfEEvN5Eigen6MatrixIT_Li3ELi1ELi0ELi3ELi1EEES4_NS2_IS3_Li4ELi1ELi0ELi4ELi1EEES4_(ptr noundef nonnull align 16 dereferenceable(964), ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SparseCMPC20setContactTrajectoryEP12ContactStatem(ptr noundef nonnull align 16 dereferenceable(964), ptr noundef, i64 noundef) #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SparseCMPC18setStateTrajectoryERSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS1_17aligned_allocatorIS3_EEE(ptr noundef nonnull align 16 dereferenceable(964), ptr noundef nonnull align 8 dereferenceable(24)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SparseCMPC7setFeetIfEEvRN5Eigen6MatrixIT_Li12ELi1ELi0ELi12ELi1EEE(ptr noundef nonnull align 16 dereferenceable(964), ptr noundef nonnull align 16 dereferenceable(48)) #4 align 2

declare void @_ZN10SparseCMPC3runEv(ptr noundef nonnull align 16 dereferenceable(964)) #1

declare void @_ZN10SparseCMPC9getResultEv(ptr dead_on_unwind writable sret(%"class.Eigen::Matrix.296") align 16, ptr noundef nonnull align 16 dereferenceable(964)) #1

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 316}
!12 = !{!"_ZTS19ConvexMPCLocomotion", !13, i64 0, !14, i64 4, !14, i64 16, !14, i64 28, !14, i64 40, !14, i64 52, !7, i64 64, !7, i64 112, !7, i64 160, !7, i64 208, !18, i64 256, !22, i64 272, !22, i64 276, !22, i64 280, !22, i64 284, !22, i64 288, !22, i64 292, !22, i64 296, !22, i64 300, !22, i64 304, !22, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !22, i64 324, !22, i64 328, !10, i64 332, !7, i64 336, !18, i64 384, !7, i64 400, !23, i64 656, !23, i64 784, !23, i64 912, !23, i64 1040, !23, i64 1168, !23, i64 1296, !23, i64 1424, !23, i64 1552, !23, i64 1680, !23, i64 1808, !23, i64 1936, !34, i64 2064, !34, i64 2100, !34, i64 2136, !34, i64 2172, !34, i64 2208, !13, i64 2244, !7, i64 2245, !7, i64 2252, !7, i64 2268, !10, i64 2292, !10, i64 2296, !14, i64 2300, !14, i64 2312, !14, i64 2324, !22, i64 2336, !7, i64 2340, !38, i64 2400, !7, i64 3280, !22, i64 6160, !39, i64 6164, !40, i64 6184, !44, i64 6208}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEE", !15, i64 0}
!15 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEEEE", !16, i64 0}
!16 = !{!"_ZTSN5Eigen12DenseStorageIfLi3ELi3ELi1ELi0EEE", !17, i64 0}
!17 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi3ELi0ELi0EEE", !7, i64 0}
!18 = !{!"_ZTSN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE", !19, i64 0}
!19 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi4ELi1ELi0ELi4ELi1EEEEE", !20, i64 0}
!20 = !{!"_ZTSN5Eigen12DenseStorageIfLi4ELi4ELi1ELi0EEE", !21, i64 0}
!21 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi4ELi0ELi16EEE", !7, i64 0}
!22 = !{!"float", !7, i64 0}
!23 = !{!"_ZTS18OffsetDurationGait", !24, i64 0, !6, i64 40, !28, i64 48, !28, i64 64, !32, i64 80, !32, i64 96, !10, i64 112, !10, i64 116, !22, i64 120}
!24 = !{!"_ZTS4Gait", !25, i64 8}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !26, i64 0, !27, i64 8, !7, i64 16}
!26 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!"_ZTSN5Eigen5ArrayIiLi4ELi1ELi0ELi4ELi1EEE", !29, i64 0}
!29 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_5ArrayIiLi4ELi1ELi0ELi4ELi1EEEEE", !30, i64 0}
!30 = !{!"_ZTSN5Eigen12DenseStorageIiLi4ELi4ELi1ELi0EEE", !31, i64 0}
!31 = !{!"_ZTSN5Eigen8internal11plain_arrayIiLi4ELi0ELi16EEE", !7, i64 0}
!32 = !{!"_ZTSN5Eigen5ArrayIfLi4ELi1ELi0ELi4ELi1EEE", !33, i64 0}
!33 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_5ArrayIfLi4ELi1ELi0ELi4ELi1EEEEE", !20, i64 0}
!34 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEE", !35, i64 0}
!35 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEE", !36, i64 0}
!36 = !{!"_ZTSN5Eigen12DenseStorageIfLi9ELi3ELi3ELi0EEE", !37, i64 0}
!37 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi9ELi0ELi0EEE", !7, i64 0}
!38 = !{!"_ZTS11CMPC_ResultIfE", !7, i64 0, !18, i64 864}
!39 = !{!"_ZTS9CMPC_Jump", !13, i64 0, !13, i64 1, !13, i64 2, !10, i64 4, !10, i64 8, !10, i64 12}
!40 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!44 = !{!"_ZTS10SparseCMPC", !45, i64 0, !49, i64 80, !53, i64 176, !53, i64 184, !53, i64 192, !53, i64 200, !54, i64 208, !54, i64 232, !54, i64 256, !54, i64 280, !58, i64 304, !49, i64 336, !49, i64 432, !49, i64 528, !62, i64 624, !40, i64 648, !66, i64 672, !70, i64 696, !74, i64 720, !78, i64 744, !82, i64 768, !82, i64 792, !86, i64 816, !86, i64 840, !66, i64 864, !66, i64 888, !66, i64 912, !90, i64 936, !10, i64 952, !10, i64 956, !10, i64 960}
!45 = !{!"_ZTSN5Eigen6MatrixIdLi3ELi3ELi0ELi3ELi3EEE", !46, i64 0}
!46 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEEEE", !47, i64 0}
!47 = !{!"_ZTSN5Eigen12DenseStorageIdLi9ELi3ELi3ELi0EEE", !48, i64 0}
!48 = !{!"_ZTSN5Eigen8internal11plain_arrayIdLi9ELi0ELi0EEE", !7, i64 0}
!49 = !{!"_ZTSN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEE", !50, i64 0}
!50 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEEEE", !51, i64 0}
!51 = !{!"_ZTSN5Eigen12DenseStorageIdLi12ELi12ELi1ELi0EEE", !52, i64 0}
!52 = !{!"_ZTSN5Eigen8internal11plain_arrayIdLi12ELi0ELi16EEE", !7, i64 0}
!53 = !{!"double", !7, i64 0}
!54 = !{!"_ZTSN5Eigen6MatrixIdLi3ELi1ELi0ELi3ELi1EEE", !55, i64 0}
!55 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLi3ELi1ELi0ELi3ELi1EEEEE", !56, i64 0}
!56 = !{!"_ZTSN5Eigen12DenseStorageIdLi3ELi3ELi1ELi0EEE", !57, i64 0}
!57 = !{!"_ZTSN5Eigen8internal11plain_arrayIdLi3ELi0ELi0EEE", !7, i64 0}
!58 = !{!"_ZTSN5Eigen6MatrixIdLi4ELi1ELi0ELi4ELi1EEE", !59, i64 0}
!59 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLi4ELi1ELi0ELi4ELi1EEEEE", !60, i64 0}
!60 = !{!"_ZTSN5Eigen12DenseStorageIdLi4ELi4ELi1ELi0EEE", !61, i64 0}
!61 = !{!"_ZTSN5Eigen8internal11plain_arrayIdLi4ELi0ELi16EEE", !7, i64 0}
!62 = !{!"_ZTSSt6vectorI12ContactStateSaIS0_EE", !63, i64 0}
!63 = !{!"_ZTSSt12_Vector_baseI12ContactStateSaIS0_EE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseI12ContactStateSaIS0_EE12_Vector_implE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseI12ContactStateSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!66 = !{!"_ZTSSt6vectorIdSaIdEE", !67, i64 0}
!67 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !69, i64 0}
!69 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!70 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIdLi12ELi12ELi0ELi12ELi12EEENS0_17aligned_allocatorIS2_EEE", !71, i64 0}
!71 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi12ELi0ELi12ELi12EEENS0_17aligned_allocatorIS2_EEE", !72, i64 0}
!72 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi12ELi0ELi12ELi12EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi12ELi0ELi12ELi12EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!74 = !{!"_ZTSSt6vectorI8BblockIDSaIS0_EE", !75, i64 0}
!75 = !{!"_ZTSSt12_Vector_baseI8BblockIDSaIS0_EE", !76, i64 0}
!76 = !{!"_ZTSNSt12_Vector_baseI8BblockIDSaIS0_EE12_Vector_implE", !77, i64 0}
!77 = !{!"_ZTSNSt12_Vector_baseI8BblockIDSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!78 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIdLi12ELi3ELi0ELi12ELi3EEENS0_17aligned_allocatorIS2_EEE", !79, i64 0}
!79 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi3ELi0ELi12ELi3EEENS0_17aligned_allocatorIS2_EEE", !80, i64 0}
!80 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi3ELi0ELi12ELi3EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !81, i64 0}
!81 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi3ELi0ELi12ELi3EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!82 = !{!"_ZTSSt6vectorIjSaIjEE", !83, i64 0}
!83 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !85, i64 0}
!85 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!86 = !{!"_ZTSSt6vectorI12SparseTripleIdESaIS1_EE", !87, i64 0}
!87 = !{!"_ZTSSt12_Vector_baseI12SparseTripleIdESaIS1_EE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseI12SparseTripleIdESaIS1_EE12_Vector_implE", !89, i64 0}
!89 = !{!"_ZTSNSt12_Vector_baseI12SparseTripleIdESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!90 = !{!"_ZTSN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEE", !91, i64 0}
!91 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEEE", !92, i64 0}
!92 = !{!"_ZTSN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EEE", !6, i64 0, !27, i64 8}
!93 = distinct !{!93, !94}
!94 = !{!"llvm.loop.mustprogress"}
!95 = !{!22, !22, i64 0}
!96 = !{!53, !53, i64 0}
!97 = distinct !{!97, !94}
!98 = distinct !{!98, !94}
!99 = distinct !{!99, !94}
!100 = distinct !{!100, !94}
!101 = distinct !{!101, !94}


; 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"

%struct.StateEstimate = type { %"class.Eigen::Matrix.3", %"class.Eigen::Matrix", %"class.Eigen::Matrix", [8 x i8], %"class.Eigen::Matrix.3", %"class.Eigen::Matrix", %"class.Eigen::Matrix.29", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", [4 x i8] }
%"class.Eigen::Matrix.3" = type { %"class.Eigen::PlainObjectBase.4" }
%"class.Eigen::PlainObjectBase.4" = type { %"class.Eigen::DenseStorage.11" }
%"class.Eigen::DenseStorage.11" = type { %"struct.Eigen::internal::plain_array.12" }
%"struct.Eigen::internal::plain_array.12" = type { [4 x float] }
%"class.Eigen::Matrix.29" = type { %"class.Eigen::PlainObjectBase.30" }
%"class.Eigen::PlainObjectBase.30" = type { %"class.Eigen::DenseStorage.37" }
%"class.Eigen::DenseStorage.37" = type { %"struct.Eigen::internal::plain_array.38" }
%"struct.Eigen::internal::plain_array.38" = type { [9 x float] }
%"class.Eigen::Matrix" = type { %"class.Eigen::PlainObjectBase" }
%"class.Eigen::PlainObjectBase" = type { %"class.Eigen::DenseStorage" }
%"class.Eigen::DenseStorage" = type { %"struct.Eigen::internal::plain_array" }
%"struct.Eigen::internal::plain_array" = type { [3 x float] }
%"class.std::vector.82" = type { %"struct.std::_Vector_base.83" }
%"struct.std::_Vector_base.83" = type { %"struct.std::_Vector_base<ContactState, std::allocator<ContactState>>::_Vector_impl" }
%"struct.std::_Vector_base<ContactState, std::allocator<ContactState>>::_Vector_impl" = type { %"struct.std::_Vector_base<ContactState, std::allocator<ContactState>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ContactState, std::allocator<ContactState>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Eigen::Matrix.296" = type { %"class.Eigen::PlainObjectBase.297" }
%"class.Eigen::PlainObjectBase.297" = type { %"class.Eigen::DenseStorage.304" }
%"class.Eigen::DenseStorage.304" = type { %"struct.Eigen::internal::plain_array.305" }
%"struct.Eigen::internal::plain_array.305" = type { [12 x float] }
%"class.Eigen::Product.284" = type { %"class.Eigen::CwiseUnaryOp", ptr }
%"class.Eigen::CwiseUnaryOp" = type <{ ptr, [8 x i8] }>

@.str.20 = external hidden unnamed_addr constant [24 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: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 16 dereferenceable(172) ptr @_ZN23StateEstimatorContainerIfE9getResultEv(ptr noundef nonnull align 16 dereferenceable(96)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN13StateEstimateIfEC2ERKS0_(ptr noundef nonnull align 16 dereferenceable(172), ptr noundef nonnull align 16 dereferenceable(172)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN19ConvexMPCLocomotion14solveSparseMPCEPiR23StateEstimatorContainerIfE(ptr noundef nonnull align 16 dereferenceable(7184) %0, ptr noundef %1, ptr noundef nonnull align 16 dereferenceable(96) %2) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %struct.StateEstimate, align 16
  %5 = alloca %"class.std::vector.82", align 8
  %6 = alloca %"class.Eigen::Matrix.296", align 16
  %7 = alloca %"class.Eigen::Matrix", align 4
  %8 = alloca %"class.Eigen::Matrix", align 4
  %9 = alloca %"class.Eigen::Matrix.3", align 16
  %10 = alloca %"class.Eigen::Matrix", align 4
  %11 = alloca %"class.Eigen::Matrix.296", align 16
  %12 = alloca %"class.Eigen::Matrix", align 4
  %13 = alloca %"class.Eigen::Product.284", align 8
  %14 = alloca %"class.Eigen::CwiseUnaryOp", align 8
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %4) #6
  %15 = tail call noundef nonnull align 16 dereferenceable(172) ptr @_ZN23StateEstimatorContainerIfE9getResultEv(ptr noundef nonnull align 16 dereferenceable(96) %2)
  call void @_ZN13StateEstimateIfEC2ERKS0_(ptr noundef nonnull align 16 dereferenceable(172) %4, ptr noundef nonnull align 16 dereferenceable(172) %15)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #6
  call void @_ZNSt6vectorI12ContactStateSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %16 = getelementptr inbounds i8, ptr %0, i64 316
  %17 = load i32, ptr %16, align 4, !tbaa !5
  %18 = icmp sgt i32 %17, 0
  br i1 %18, label %.lr.ph, label %._crit_edge

.preheader57:                                     ; preds = %31
  %19 = icmp sgt i32 %32, 0
  br i1 %19, label %.preheader56.lr.ph, label %._crit_edge

.preheader56.lr.ph:                               ; preds = %.preheader57
  %20 = getelementptr inbounds i8, ptr %0, i64 3280
  %21 = getelementptr inbounds i8, ptr %0, i64 6184
  br label %.preheader56

.lr.ph:                                           ; preds = %3, %31
  %indvars.iv = phi i64 [ %indvars.iv.next, %31 ], [ 0, %3 ]
  %22 = shl nsw i64 %indvars.iv, 2
  %23 = getelementptr inbounds i32, ptr %1, i64 %22
  %24 = or disjoint i64 %22, 1
  %25 = getelementptr inbounds i32, ptr %1, i64 %24
  %26 = or disjoint i64 %22, 2
  %27 = getelementptr inbounds i32, ptr %1, i64 %26
  %28 = or disjoint i64 %22, 3
  %29 = getelementptr inbounds i32, ptr %1, i64 %28
  %30 = invoke noundef nonnull align 1 dereferenceable(4) ptr @_ZNSt6vectorI12ContactStateSaIS0_EE12emplace_backIJRiS4_S4_S4_EEERS0_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %31 unwind label %35

31:                                               ; preds = %.lr.ph
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %32 = load i32, ptr %16, align 4, !tbaa !5
  %33 = sext i32 %32 to i64
  %34 = icmp slt i64 %indvars.iv.next, %33
  br i1 %34, label %.lr.ph, label %.preheader57, !llvm.loop !91

35:                                               ; preds = %.lr.ph
  %36 = landingpad { ptr, i32 }
          cleanup
  br label %378

.preheader56:                                     ; preds = %.preheader56.lr.ph, %122
  %indvars.iv69 = phi i64 [ 0, %.preheader56.lr.ph ], [ %indvars.iv.next70, %122 ]
  %37 = mul nuw nsw i64 %indvars.iv69, 12
  %38 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %37
  %39 = load float, ptr %38, align 16, !tbaa !93
  %40 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %41 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %40, i64 noundef 0)
          to label %45 unwind label %127

._crit_edge:                                      ; preds = %122, %3, %.preheader57
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) #6
  invoke void @_ZN5Eigen6MatrixIfLi12ELi1ELi0ELi12ELi1EEC2Ev(ptr noundef nonnull align 16 dereferenceable(48) %6)
          to label %.preheader55 unwind label %129

.preheader55:                                     ; preds = %._crit_edge
  %42 = getelementptr inbounds i8, ptr %0, i64 2340
  %43 = getelementptr inbounds i8, ptr %4, i64 16
  %44 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %42, i64 noundef 0)
          to label %131 unwind label %239

45:                                               ; preds = %.preheader56
  %46 = fpext float %39 to double
  store double %46, ptr %41, align 8, !tbaa !94
  %47 = or disjoint i64 %37, 1
  %48 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %47
  %49 = load float, ptr %48, align 4, !tbaa !93
  %50 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %51 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %50, i64 noundef 1)
          to label %52 unwind label %127

52:                                               ; preds = %45
  %53 = fpext float %49 to double
  store double %53, ptr %51, align 8, !tbaa !94
  %54 = or disjoint i64 %37, 2
  %55 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %54
  %56 = load float, ptr %55, align 8, !tbaa !93
  %57 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %58 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %57, i64 noundef 2)
          to label %59 unwind label %127

59:                                               ; preds = %52
  %60 = fpext float %56 to double
  store double %60, ptr %58, align 8, !tbaa !94
  %61 = or disjoint i64 %37, 3
  %62 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %61
  %63 = load float, ptr %62, align 4, !tbaa !93
  %64 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %65 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %64, i64 noundef 3)
          to label %66 unwind label %127

66:                                               ; preds = %59
  %67 = fpext float %63 to double
  store double %67, ptr %65, align 8, !tbaa !94
  %68 = add nuw nsw i64 %37, 4
  %69 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %68
  %70 = load float, ptr %69, align 16, !tbaa !93
  %71 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %72 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %71, i64 noundef 4)
          to label %73 unwind label %127

73:                                               ; preds = %66
  %74 = fpext float %70 to double
  store double %74, ptr %72, align 8, !tbaa !94
  %75 = add nuw nsw i64 %37, 5
  %76 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %75
  %77 = load float, ptr %76, align 4, !tbaa !93
  %78 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %79 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %78, i64 noundef 5)
          to label %80 unwind label %127

80:                                               ; preds = %73
  %81 = fpext float %77 to double
  store double %81, ptr %79, align 8, !tbaa !94
  %82 = add nuw nsw i64 %37, 6
  %83 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %82
  %84 = load float, ptr %83, align 8, !tbaa !93
  %85 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %86 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %85, i64 noundef 6)
          to label %87 unwind label %127

87:                                               ; preds = %80
  %88 = fpext float %84 to double
  store double %88, ptr %86, align 8, !tbaa !94
  %89 = add nuw nsw i64 %37, 7
  %90 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %89
  %91 = load float, ptr %90, align 4, !tbaa !93
  %92 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %93 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %92, i64 noundef 7)
          to label %94 unwind label %127

94:                                               ; preds = %87
  %95 = fpext float %91 to double
  store double %95, ptr %93, align 8, !tbaa !94
  %96 = add nuw nsw i64 %37, 8
  %97 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %96
  %98 = load float, ptr %97, align 16, !tbaa !93
  %99 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %99, i64 noundef 8)
          to label %101 unwind label %127

101:                                              ; preds = %94
  %102 = fpext float %98 to double
  store double %102, ptr %100, align 8, !tbaa !94
  %103 = add nuw nsw i64 %37, 9
  %104 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %103
  %105 = load float, ptr %104, align 4, !tbaa !93
  %106 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %107 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %106, i64 noundef 9)
          to label %108 unwind label %127

108:                                              ; preds = %101
  %109 = fpext float %105 to double
  store double %109, ptr %107, align 8, !tbaa !94
  %110 = add nuw nsw i64 %37, 10
  %111 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %110
  %112 = load float, ptr %111, align 8, !tbaa !93
  %113 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %113, i64 noundef 10)
          to label %115 unwind label %127

115:                                              ; preds = %108
  %116 = fpext float %112 to double
  store double %116, ptr %114, align 8, !tbaa !94
  %117 = add nuw nsw i64 %37, 11
  %118 = getelementptr inbounds [720 x float], ptr %20, i64 0, i64 %117
  %119 = load float, ptr %118, align 4, !tbaa !93
  %120 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv69) #6
  %121 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %120, i64 noundef 11)
          to label %122 unwind label %127

122:                                              ; preds = %115
  %123 = fpext float %119 to double
  store double %123, ptr %121, align 8, !tbaa !94
  %indvars.iv.next70 = add nuw nsw i64 %indvars.iv69, 1
  %124 = load i32, ptr %16, align 4, !tbaa !5
  %125 = sext i32 %124 to i64
  %126 = icmp slt i64 %indvars.iv.next70, %125
  br i1 %126, label %.preheader56, label %._crit_edge, !llvm.loop !95

127:                                              ; preds = %115, %108, %101, %94, %87, %80, %73, %66, %59, %52, %45, %.preheader56
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %378

129:                                              ; preds = %254, %253, %251, %248, %247, %245, %243, %241, %236, %._crit_edge
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %377

131:                                              ; preds = %.preheader55
  %132 = load float, ptr %44, align 4, !tbaa !93
  %133 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 0)
          to label %134 unwind label %239

134:                                              ; preds = %131
  %135 = load float, ptr %133, align 4, !tbaa !93
  %136 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 0)
          to label %137 unwind label %239

137:                                              ; preds = %134
  %138 = fsub float %132, %135
  store float %138, ptr %136, align 4, !tbaa !93
  %139 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %42, i64 noundef 1)
          to label %140 unwind label %239

140:                                              ; preds = %137
  %141 = load float, ptr %139, align 4, !tbaa !93
  %142 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 1)
          to label %143 unwind label %239

143:                                              ; preds = %140
  %144 = load float, ptr %142, align 4, !tbaa !93
  %145 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 1)
          to label %146 unwind label %239

146:                                              ; preds = %143
  %147 = fsub float %141, %144
  store float %147, ptr %145, align 4, !tbaa !93
  %148 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %42, i64 noundef 2)
          to label %149 unwind label %239

149:                                              ; preds = %146
  %150 = load float, ptr %148, align 4, !tbaa !93
  %151 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 2)
          to label %152 unwind label %239

152:                                              ; preds = %149
  %153 = load float, ptr %151, align 4, !tbaa !93
  %154 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 2)
          to label %.preheader54.1 unwind label %239

.preheader54.1:                                   ; preds = %152
  %155 = fsub float %150, %153
  store float %155, ptr %154, align 4, !tbaa !93
  %156 = getelementptr inbounds i8, ptr %0, i64 2352
  %157 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %156, i64 noundef 0)
          to label %158 unwind label %239

158:                                              ; preds = %.preheader54.1
  %159 = load float, ptr %157, align 4, !tbaa !93
  %160 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 0)
          to label %161 unwind label %239

161:                                              ; preds = %158
  %162 = load float, ptr %160, align 4, !tbaa !93
  %163 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 3)
          to label %164 unwind label %239

164:                                              ; preds = %161
  %165 = fsub float %159, %162
  store float %165, ptr %163, align 4, !tbaa !93
  %166 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %156, i64 noundef 1)
          to label %167 unwind label %239

167:                                              ; preds = %164
  %168 = load float, ptr %166, align 4, !tbaa !93
  %169 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 1)
          to label %170 unwind label %239

170:                                              ; preds = %167
  %171 = load float, ptr %169, align 4, !tbaa !93
  %172 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 4)
          to label %173 unwind label %239

173:                                              ; preds = %170
  %174 = fsub float %168, %171
  store float %174, ptr %172, align 4, !tbaa !93
  %175 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %156, i64 noundef 2)
          to label %176 unwind label %239

176:                                              ; preds = %173
  %177 = load float, ptr %175, align 4, !tbaa !93
  %178 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 2)
          to label %179 unwind label %239

179:                                              ; preds = %176
  %180 = load float, ptr %178, align 4, !tbaa !93
  %181 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 5)
          to label %.preheader54.2 unwind label %239

.preheader54.2:                                   ; preds = %179
  %182 = fsub float %177, %180
  store float %182, ptr %181, align 4, !tbaa !93
  %183 = getelementptr inbounds i8, ptr %0, i64 2364
  %184 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %183, i64 noundef 0)
          to label %185 unwind label %239

185:                                              ; preds = %.preheader54.2
  %186 = load float, ptr %184, align 4, !tbaa !93
  %187 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 0)
          to label %188 unwind label %239

188:                                              ; preds = %185
  %189 = load float, ptr %187, align 4, !tbaa !93
  %190 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 6)
          to label %191 unwind label %239

191:                                              ; preds = %188
  %192 = fsub float %186, %189
  store float %192, ptr %190, align 4, !tbaa !93
  %193 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %183, i64 noundef 1)
          to label %194 unwind label %239

194:                                              ; preds = %191
  %195 = load float, ptr %193, align 4, !tbaa !93
  %196 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 1)
          to label %197 unwind label %239

197:                                              ; preds = %194
  %198 = load float, ptr %196, align 4, !tbaa !93
  %199 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 7)
          to label %200 unwind label %239

200:                                              ; preds = %197
  %201 = fsub float %195, %198
  store float %201, ptr %199, align 4, !tbaa !93
  %202 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %183, i64 noundef 2)
          to label %203 unwind label %239

203:                                              ; preds = %200
  %204 = load float, ptr %202, align 4, !tbaa !93
  %205 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 2)
          to label %206 unwind label %239

206:                                              ; preds = %203
  %207 = load float, ptr %205, align 4, !tbaa !93
  %208 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 8)
          to label %.preheader54.3 unwind label %239

.preheader54.3:                                   ; preds = %206
  %209 = fsub float %204, %207
  store float %209, ptr %208, align 4, !tbaa !93
  %210 = getelementptr inbounds i8, ptr %0, i64 2376
  %211 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %210, i64 noundef 0)
          to label %212 unwind label %239

212:                                              ; preds = %.preheader54.3
  %213 = load float, ptr %211, align 4, !tbaa !93
  %214 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 0)
          to label %215 unwind label %239

215:                                              ; preds = %212
  %216 = load float, ptr %214, align 4, !tbaa !93
  %217 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 9)
          to label %218 unwind label %239

218:                                              ; preds = %215
  %219 = fsub float %213, %216
  store float %219, ptr %217, align 4, !tbaa !93
  %220 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %210, i64 noundef 1)
          to label %221 unwind label %239

221:                                              ; preds = %218
  %222 = load float, ptr %220, align 4, !tbaa !93
  %223 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 1)
          to label %224 unwind label %239

224:                                              ; preds = %221
  %225 = load float, ptr %223, align 4, !tbaa !93
  %226 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 10)
          to label %227 unwind label %239

227:                                              ; preds = %224
  %228 = fsub float %222, %225
  store float %228, ptr %226, align 4, !tbaa !93
  %229 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %210, i64 noundef 2)
          to label %230 unwind label %239

230:                                              ; preds = %227
  %231 = load float, ptr %229, align 4, !tbaa !93
  %232 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %43, i64 noundef 2)
          to label %233 unwind label %239

233:                                              ; preds = %230
  %234 = load float, ptr %232, align 4, !tbaa !93
  %235 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %6, i64 noundef 11)
          to label %236 unwind label %239

236:                                              ; preds = %233
  %237 = fsub float %231, %234
  store float %237, ptr %235, align 4, !tbaa !93
  %238 = getelementptr inbounds i8, ptr %0, i64 6208
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %7, ptr noundef nonnull align 4 dereferenceable(12) %43)
          to label %241 unwind label %129

239:                                              ; preds = %233, %230, %227, %224, %221, %218, %215, %212, %.preheader54.3, %206, %203, %200, %197, %194, %191, %188, %185, %.preheader54.2, %179, %176, %173, %170, %167, %164, %161, %158, %.preheader54.1, %152, %149, %146, %143, %140, %137, %134, %131, %.preheader55
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %377

241:                                              ; preds = %236
  %242 = getelementptr inbounds i8, ptr %4, i64 136
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %8, ptr noundef nonnull align 4 dereferenceable(12) %242)
          to label %243 unwind label %129

243:                                              ; preds = %241
  %244 = getelementptr inbounds i8, ptr %4, i64 48
  invoke void @_ZN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEC2ERKS1_(ptr noundef nonnull align 16 dereferenceable(16) %9, ptr noundef nonnull align 16 dereferenceable(16) %244)
          to label %245 unwind label %129

245:                                              ; preds = %243
  %246 = getelementptr inbounds i8, ptr %4, i64 124
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %10, ptr noundef nonnull align 4 dereferenceable(12) %246)
          to label %247 unwind label %129

247:                                              ; preds = %245
  invoke void @_ZN10SparseCMPC5setX0IfEEvN5Eigen6MatrixIT_Li3ELi1ELi0ELi3ELi1EEES4_NS2_IS3_Li4ELi1ELi0ELi4ELi1EEES4_(ptr noundef nonnull align 16 dereferenceable(964) %238, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %10)
          to label %248 unwind label %129

248:                                              ; preds = %247
  %249 = call noundef ptr @_ZNSt6vectorI12ContactStateSaIS0_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %250 = call noundef i64 @_ZNKSt6vectorI12ContactStateSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  invoke void @_ZN10SparseCMPC20setContactTrajectoryEP12ContactStatem(ptr noundef nonnull align 16 dereferenceable(964) %238, ptr noundef %249, i64 noundef %250)
          to label %251 unwind label %129

251:                                              ; preds = %248
  %252 = getelementptr inbounds i8, ptr %0, i64 6184
  invoke void @_ZN10SparseCMPC18setStateTrajectoryERSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS1_17aligned_allocatorIS3_EEE(ptr noundef nonnull align 16 dereferenceable(964) %238, ptr noundef nonnull align 8 dereferenceable(24) %252)
          to label %253 unwind label %129

253:                                              ; preds = %251
  invoke void @_ZN10SparseCMPC7setFeetIfEEvRN5Eigen6MatrixIT_Li12ELi1ELi0ELi12ELi1EEE(ptr noundef nonnull align 16 dereferenceable(964) %238, ptr noundef nonnull align 16 dereferenceable(48) %6)
          to label %254 unwind label %129

254:                                              ; preds = %253
  invoke void @_ZN10SparseCMPC3runEv(ptr noundef nonnull align 16 dereferenceable(964) %238)
          to label %255 unwind label %129

255:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) #6
  invoke void @_ZN10SparseCMPC9getResultEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Matrix.296") align 16 %11, ptr noundef nonnull align 16 dereferenceable(964) %238)
          to label %.preheader unwind label %260

.preheader:                                       ; preds = %255
  %256 = getelementptr inbounds i8, ptr %4, i64 76
  %257 = getelementptr inbounds i8, ptr %0, i64 336
  %258 = getelementptr inbounds i8, ptr %0, i64 208
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) #6
  %259 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 0)
          to label %262 unwind label %371

260:                                              ; preds = %255
  %261 = landingpad { ptr, i32 }
          cleanup
  br label %376

262:                                              ; preds = %.preheader
  %263 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 1)
          to label %264 unwind label %371

264:                                              ; preds = %262
  %265 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 2)
          to label %266 unwind label %371

266:                                              ; preds = %264
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %12, ptr noundef nonnull align 4 dereferenceable(4) %259, ptr noundef nonnull align 4 dereferenceable(4) %263, ptr noundef nonnull align 4 dereferenceable(4) %265)
          to label %267 unwind label %371

267:                                              ; preds = %266
  %268 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 0)
          to label %269 unwind label %371

269:                                              ; preds = %267
  %270 = load float, ptr %268, align 4, !tbaa !93
  %271 = fpext float %270 to double
  %272 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 1)
          to label %273 unwind label %371

273:                                              ; preds = %269
  %274 = load float, ptr %272, align 4, !tbaa !93
  %275 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 2)
          to label %276 unwind label %371

276:                                              ; preds = %273
  %277 = fpext float %274 to double
  %278 = load float, ptr %275, align 4, !tbaa !93
  %279 = fpext float %278 to double
  %280 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.20, i32 noundef 0, double noundef %271, double noundef %277, double noundef %279)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #6
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp") align 8 %14, ptr noundef nonnull align 1 dereferenceable(1) %256)
          to label %281 unwind label %373

281:                                              ; preds = %276
  invoke void @_ZNK5Eigen10MatrixBaseINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEEEmlINS5_IfLi3ELi1ELi0ELi3ELi1EEEEEKNS_7ProductIS8_T_Li0EEERKNS0_ISD_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Product.284") align 8 %13, ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %282 unwind label %373

282:                                              ; preds = %281
  %283 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSINS_7ProductINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS0_IfLi3ELi3ELi0ELi3ELi3EEEEES1_Li0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 4 dereferenceable(12) %257, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %284 unwind label %373

284:                                              ; preds = %282
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  %285 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %258, ptr noundef nonnull align 4 dereferenceable(12) %12)
          to label %286 unwind label %371

286:                                              ; preds = %284
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) #6
  %287 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 3)
          to label %288 unwind label %371

288:                                              ; preds = %286
  %289 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 4)
          to label %290 unwind label %371

290:                                              ; preds = %288
  %291 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 5)
          to label %292 unwind label %371

292:                                              ; preds = %290
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %12, ptr noundef nonnull align 4 dereferenceable(4) %287, ptr noundef nonnull align 4 dereferenceable(4) %289, ptr noundef nonnull align 4 dereferenceable(4) %291)
          to label %293 unwind label %371

293:                                              ; preds = %292
  %294 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 0)
          to label %295 unwind label %371

295:                                              ; preds = %293
  %296 = load float, ptr %294, align 4, !tbaa !93
  %297 = fpext float %296 to double
  %298 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 1)
          to label %299 unwind label %371

299:                                              ; preds = %295
  %300 = load float, ptr %298, align 4, !tbaa !93
  %301 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 2)
          to label %302 unwind label %371

302:                                              ; preds = %299
  %303 = fpext float %300 to double
  %304 = load float, ptr %301, align 4, !tbaa !93
  %305 = fpext float %304 to double
  %306 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.20, i32 noundef 1, double noundef %297, double noundef %303, double noundef %305)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #6
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp") align 8 %14, ptr noundef nonnull align 1 dereferenceable(1) %256)
          to label %307 unwind label %373

307:                                              ; preds = %302
  invoke void @_ZNK5Eigen10MatrixBaseINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEEEmlINS5_IfLi3ELi1ELi0ELi3ELi1EEEEEKNS_7ProductIS8_T_Li0EEERKNS0_ISD_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Product.284") align 8 %13, ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %308 unwind label %373

308:                                              ; preds = %307
  %309 = getelementptr inbounds i8, ptr %0, i64 348
  %310 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSINS_7ProductINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS0_IfLi3ELi3ELi0ELi3ELi3EEEEES1_Li0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 4 dereferenceable(12) %309, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %311 unwind label %373

311:                                              ; preds = %308
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  %312 = getelementptr inbounds i8, ptr %0, i64 220
  %313 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %312, ptr noundef nonnull align 4 dereferenceable(12) %12)
          to label %314 unwind label %371

314:                                              ; preds = %311
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) #6
  %315 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 6)
          to label %316 unwind label %371

316:                                              ; preds = %314
  %317 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 7)
          to label %318 unwind label %371

318:                                              ; preds = %316
  %319 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 8)
          to label %320 unwind label %371

320:                                              ; preds = %318
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %12, ptr noundef nonnull align 4 dereferenceable(4) %315, ptr noundef nonnull align 4 dereferenceable(4) %317, ptr noundef nonnull align 4 dereferenceable(4) %319)
          to label %321 unwind label %371

321:                                              ; preds = %320
  %322 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 0)
          to label %323 unwind label %371

323:                                              ; preds = %321
  %324 = load float, ptr %322, align 4, !tbaa !93
  %325 = fpext float %324 to double
  %326 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 1)
          to label %327 unwind label %371

327:                                              ; preds = %323
  %328 = load float, ptr %326, align 4, !tbaa !93
  %329 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 2)
          to label %330 unwind label %371

330:                                              ; preds = %327
  %331 = fpext float %328 to double
  %332 = load float, ptr %329, align 4, !tbaa !93
  %333 = fpext float %332 to double
  %334 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.20, i32 noundef 2, double noundef %325, double noundef %331, double noundef %333)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #6
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp") align 8 %14, ptr noundef nonnull align 1 dereferenceable(1) %256)
          to label %335 unwind label %373

335:                                              ; preds = %330
  invoke void @_ZNK5Eigen10MatrixBaseINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEEEmlINS5_IfLi3ELi1ELi0ELi3ELi1EEEEEKNS_7ProductIS8_T_Li0EEERKNS0_ISD_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Product.284") align 8 %13, ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %336 unwind label %373

336:                                              ; preds = %335
  %337 = getelementptr inbounds i8, ptr %0, i64 360
  %338 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSINS_7ProductINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS0_IfLi3ELi3ELi0ELi3ELi3EEEEES1_Li0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 4 dereferenceable(12) %337, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %339 unwind label %373

339:                                              ; preds = %336
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  %340 = getelementptr inbounds i8, ptr %0, i64 232
  %341 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %340, ptr noundef nonnull align 4 dereferenceable(12) %12)
          to label %342 unwind label %371

342:                                              ; preds = %339
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) #6
  %343 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 9)
          to label %344 unwind label %371

344:                                              ; preds = %342
  %345 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 10)
          to label %346 unwind label %371

346:                                              ; preds = %344
  %347 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %11, i64 noundef 11)
          to label %348 unwind label %371

348:                                              ; preds = %346
  invoke void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %12, ptr noundef nonnull align 4 dereferenceable(4) %343, ptr noundef nonnull align 4 dereferenceable(4) %345, ptr noundef nonnull align 4 dereferenceable(4) %347)
          to label %349 unwind label %371

349:                                              ; preds = %348
  %350 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 0)
          to label %351 unwind label %371

351:                                              ; preds = %349
  %352 = load float, ptr %350, align 4, !tbaa !93
  %353 = fpext float %352 to double
  %354 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 1)
          to label %355 unwind label %371

355:                                              ; preds = %351
  %356 = load float, ptr %354, align 4, !tbaa !93
  %357 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 2)
          to label %358 unwind label %371

358:                                              ; preds = %355
  %359 = fpext float %356 to double
  %360 = load float, ptr %357, align 4, !tbaa !93
  %361 = fpext float %360 to double
  %362 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.20, i32 noundef 3, double noundef %353, double noundef %359, double noundef %361)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #6
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp") align 8 %14, ptr noundef nonnull align 1 dereferenceable(1) %256)
          to label %363 unwind label %373

363:                                              ; preds = %358
  invoke void @_ZNK5Eigen10MatrixBaseINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEEEmlINS5_IfLi3ELi1ELi0ELi3ELi1EEEEEKNS_7ProductIS8_T_Li0EEERKNS0_ISD_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Product.284") align 8 %13, ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %364 unwind label %373

364:                                              ; preds = %363
  %365 = getelementptr inbounds i8, ptr %0, i64 372
  %366 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSINS_7ProductINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS0_IfLi3ELi3ELi0ELi3ELi3EEEEES1_Li0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 4 dereferenceable(12) %365, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %367 unwind label %373

367:                                              ; preds = %364
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  %368 = getelementptr inbounds i8, ptr %0, i64 244
  %369 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %368, ptr noundef nonnull align 4 dereferenceable(12) %12)
          to label %370 unwind label %371

370:                                              ; preds = %367
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #6
  call void @_ZNSt6vectorI12ContactStateSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %4) #6
  ret void

371:                                              ; preds = %367, %355, %351, %349, %348, %346, %344, %342, %339, %327, %323, %321, %320, %318, %316, %314, %311, %299, %295, %293, %292, %290, %288, %286, %284, %273, %269, %267, %266, %264, %262, %.preheader
  %372 = landingpad { ptr, i32 }
          cleanup
  br label %375

373:                                              ; preds = %364, %363, %358, %336, %335, %330, %308, %307, %302, %282, %281, %276
  %374 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  br label %375

375:                                              ; preds = %373, %371
  %.pn = phi { ptr, i32 } [ %372, %371 ], [ %374, %373 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #6
  br label %376

376:                                              ; preds = %375, %260
  %.pn.pn = phi { ptr, i32 } [ %.pn, %375 ], [ %261, %260 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #6
  br label %377

377:                                              ; preds = %376, %239, %129
  %.pn50 = phi { ptr, i32 } [ %240, %239 ], [ %.pn.pn, %376 ], [ %130, %129 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #6
  br label %378

378:                                              ; preds = %377, %127, %35
  %.pn52 = phi { ptr, i32 } [ %36, %35 ], [ %128, %127 ], [ %.pn50, %377 ]
  call void @_ZNSt6vectorI12ContactStateSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %4) #6
  resume { ptr, i32 } %.pn52
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEngEv(ptr dead_on_unwind noalias writable sret(%"class.Eigen::CwiseUnaryOp") align 8, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK5Eigen10MatrixBaseINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEEEmlINS5_IfLi3ELi1ELi0ELi3ELi1EEEEEKNS_7ProductIS8_T_Li0EEERKNS0_ISD_EE(ptr dead_on_unwind noalias writable sret(%"class.Eigen::Product.284") align 8, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEaSINS_7ProductINS_12CwiseUnaryOpINS_8internal18scalar_opposite_opIfEEKNS0_IfLi3ELi3ELi0ELi3ELi3EEEEES1_Li0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 16 dereferenceable(96) ptr @_ZNSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen6MatrixIfLi12ELi1ELi0ELi12ELi1EEC2Ev(ptr noundef nonnull align 16 dereferenceable(48)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi12ELi1ELi0ELi12ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SparseCMPC5setX0IfEEvN5Eigen6MatrixIT_Li3ELi1ELi0ELi3ELi1EEES4_NS2_IS3_Li4ELi1ELi0ELi4ELi1EEES4_(ptr noundef nonnull align 16 dereferenceable(964), ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SparseCMPC20setContactTrajectoryEP12ContactStatem(ptr noundef nonnull align 16 dereferenceable(964), ptr noundef, i64 noundef) local_unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SparseCMPC18setStateTrajectoryERSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS1_17aligned_allocatorIS3_EEE(ptr noundef nonnull align 16 dereferenceable(964), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SparseCMPC7setFeetIfEEvRN5Eigen6MatrixIT_Li12ELi1ELi0ELi12ELi1EEE(ptr noundef nonnull align 16 dereferenceable(964), ptr noundef nonnull align 16 dereferenceable(48)) local_unnamed_addr #4 align 2

declare void @_ZN10SparseCMPC3runEv(ptr noundef nonnull align 16 dereferenceable(964)) local_unnamed_addr #5

declare void @_ZN10SparseCMPC9getResultEv(ptr dead_on_unwind writable sret(%"class.Eigen::Matrix.296") align 16, ptr noundef nonnull align 16 dereferenceable(964)) local_unnamed_addr #5

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nofree 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 = { 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 #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 = { 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !19, i64 316}
!6 = !{!"_ZTS19ConvexMPCLocomotion", !7, i64 0, !10, i64 4, !10, i64 16, !10, i64 28, !10, i64 40, !10, i64 52, !8, i64 64, !8, i64 112, !8, i64 160, !8, i64 208, !14, i64 256, !18, i64 272, !18, i64 276, !18, i64 280, !18, i64 284, !18, i64 288, !18, i64 292, !18, i64 296, !18, i64 300, !18, i64 304, !18, i64 308, !19, i64 312, !19, i64 316, !19, i64 320, !18, i64 324, !18, i64 328, !19, i64 332, !8, i64 336, !14, i64 384, !8, i64 400, !20, i64 656, !20, i64 784, !20, i64 912, !20, i64 1040, !20, i64 1168, !20, i64 1296, !20, i64 1424, !20, i64 1552, !20, i64 1680, !20, i64 1808, !20, i64 1936, !32, i64 2064, !32, i64 2100, !32, i64 2136, !32, i64 2172, !32, i64 2208, !7, i64 2244, !8, i64 2245, !8, i64 2252, !8, i64 2268, !19, i64 2292, !19, i64 2296, !10, i64 2300, !10, i64 2312, !10, i64 2324, !18, i64 2336, !8, i64 2340, !36, i64 2400, !8, i64 3280, !18, i64 6160, !37, i64 6164, !38, i64 6184, !42, i64 6208}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEE", !11, i64 0}
!11 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEEEE", !12, i64 0}
!12 = !{!"_ZTSN5Eigen12DenseStorageIfLi3ELi3ELi1ELi0EEE", !13, i64 0}
!13 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi3ELi0ELi0EEE", !8, i64 0}
!14 = !{!"_ZTSN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE", !15, i64 0}
!15 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi4ELi1ELi0ELi4ELi1EEEEE", !16, i64 0}
!16 = !{!"_ZTSN5Eigen12DenseStorageIfLi4ELi4ELi1ELi0EEE", !17, i64 0}
!17 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi4ELi0ELi16EEE", !8, i64 0}
!18 = !{!"float", !8, i64 0}
!19 = !{!"int", !8, i64 0}
!20 = !{!"_ZTS18OffsetDurationGait", !21, i64 0, !24, i64 40, !26, i64 48, !26, i64 64, !30, i64 80, !30, i64 96, !19, i64 112, !19, i64 116, !18, i64 120}
!21 = !{!"_ZTS4Gait", !22, i64 8}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !25, i64 8, !8, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !24, i64 0}
!24 = !{!"any pointer", !8, i64 0}
!25 = !{!"long", !8, i64 0}
!26 = !{!"_ZTSN5Eigen5ArrayIiLi4ELi1ELi0ELi4ELi1EEE", !27, i64 0}
!27 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_5ArrayIiLi4ELi1ELi0ELi4ELi1EEEEE", !28, i64 0}
!28 = !{!"_ZTSN5Eigen12DenseStorageIiLi4ELi4ELi1ELi0EEE", !29, i64 0}
!29 = !{!"_ZTSN5Eigen8internal11plain_arrayIiLi4ELi0ELi16EEE", !8, i64 0}
!30 = !{!"_ZTSN5Eigen5ArrayIfLi4ELi1ELi0ELi4ELi1EEE", !31, i64 0}
!31 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_5ArrayIfLi4ELi1ELi0ELi4ELi1EEEEE", !16, i64 0}
!32 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEE", !33, i64 0}
!33 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEE", !34, i64 0}
!34 = !{!"_ZTSN5Eigen12DenseStorageIfLi9ELi3ELi3ELi0EEE", !35, i64 0}
!35 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi9ELi0ELi0EEE", !8, i64 0}
!36 = !{!"_ZTS11CMPC_ResultIfE", !8, i64 0, !14, i64 864}
!37 = !{!"_ZTS9CMPC_Jump", !7, i64 0, !7, i64 1, !7, i64 2, !19, i64 4, !19, i64 8, !19, i64 12}
!38 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!42 = !{!"_ZTS10SparseCMPC", !43, i64 0, !47, i64 80, !51, i64 176, !51, i64 184, !51, i64 192, !51, i64 200, !52, i64 208, !52, i64 232, !52, i64 256, !52, i64 280, !56, i64 304, !47, i64 336, !47, i64 432, !47, i64 528, !60, i64 624, !38, i64 648, !64, i64 672, !68, i64 696, !72, i64 720, !76, i64 744, !80, i64 768, !80, i64 792, !84, i64 816, !84, i64 840, !64, i64 864, !64, i64 888, !64, i64 912, !88, i64 936, !19, i64 952, !19, i64 956, !19, i64 960}
!43 = !{!"_ZTSN5Eigen6MatrixIdLi3ELi3ELi0ELi3ELi3EEE", !44, i64 0}
!44 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLi3ELi3ELi0ELi3ELi3EEEEE", !45, i64 0}
!45 = !{!"_ZTSN5Eigen12DenseStorageIdLi9ELi3ELi3ELi0EEE", !46, i64 0}
!46 = !{!"_ZTSN5Eigen8internal11plain_arrayIdLi9ELi0ELi0EEE", !8, i64 0}
!47 = !{!"_ZTSN5Eigen6MatrixIdLi12ELi1ELi0ELi12ELi1EEE", !48, i64 0}
!48 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLi12ELi1ELi0ELi12ELi1EEEEE", !49, i64 0}
!49 = !{!"_ZTSN5Eigen12DenseStorageIdLi12ELi12ELi1ELi0EEE", !50, i64 0}
!50 = !{!"_ZTSN5Eigen8internal11plain_arrayIdLi12ELi0ELi16EEE", !8, i64 0}
!51 = !{!"double", !8, i64 0}
!52 = !{!"_ZTSN5Eigen6MatrixIdLi3ELi1ELi0ELi3ELi1EEE", !53, i64 0}
!53 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLi3ELi1ELi0ELi3ELi1EEEEE", !54, i64 0}
!54 = !{!"_ZTSN5Eigen12DenseStorageIdLi3ELi3ELi1ELi0EEE", !55, i64 0}
!55 = !{!"_ZTSN5Eigen8internal11plain_arrayIdLi3ELi0ELi0EEE", !8, i64 0}
!56 = !{!"_ZTSN5Eigen6MatrixIdLi4ELi1ELi0ELi4ELi1EEE", !57, i64 0}
!57 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLi4ELi1ELi0ELi4ELi1EEEEE", !58, i64 0}
!58 = !{!"_ZTSN5Eigen12DenseStorageIdLi4ELi4ELi1ELi0EEE", !59, i64 0}
!59 = !{!"_ZTSN5Eigen8internal11plain_arrayIdLi4ELi0ELi16EEE", !8, i64 0}
!60 = !{!"_ZTSSt6vectorI12ContactStateSaIS0_EE", !61, i64 0}
!61 = !{!"_ZTSSt12_Vector_baseI12ContactStateSaIS0_EE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseI12ContactStateSaIS0_EE12_Vector_implE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseI12ContactStateSaIS0_EE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!64 = !{!"_ZTSSt6vectorIdSaIdEE", !65, i64 0}
!65 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !66, i64 0}
!66 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!68 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIdLi12ELi12ELi0ELi12ELi12EEENS0_17aligned_allocatorIS2_EEE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi12ELi0ELi12ELi12EEENS0_17aligned_allocatorIS2_EEE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi12ELi0ELi12ELi12EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi12ELi0ELi12ELi12EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!72 = !{!"_ZTSSt6vectorI8BblockIDSaIS0_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseI8BblockIDSaIS0_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseI8BblockIDSaIS0_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseI8BblockIDSaIS0_EE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!76 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIdLi12ELi3ELi0ELi12ELi3EEENS0_17aligned_allocatorIS2_EEE", !77, i64 0}
!77 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi3ELi0ELi12ELi3EEENS0_17aligned_allocatorIS2_EEE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi3ELi0ELi12ELi3EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIdLi12ELi3ELi0ELi12ELi3EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!80 = !{!"_ZTSSt6vectorIjSaIjEE", !81, i64 0}
!81 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!84 = !{!"_ZTSSt6vectorI12SparseTripleIdESaIS1_EE", !85, i64 0}
!85 = !{!"_ZTSSt12_Vector_baseI12SparseTripleIdESaIS1_EE", !86, i64 0}
!86 = !{!"_ZTSNSt12_Vector_baseI12SparseTripleIdESaIS1_EE12_Vector_implE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseI12SparseTripleIdESaIS1_EE17_Vector_impl_dataE", !24, i64 0, !24, i64 8, !24, i64 16}
!88 = !{!"_ZTSN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEE", !89, i64 0}
!89 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEEE", !90, i64 0}
!90 = !{!"_ZTSN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EEE", !24, i64 0, !25, i64 8}
!91 = distinct !{!91, !92}
!92 = !{!"llvm.loop.mustprogress"}
!93 = !{!18, !18, i64 0}
!94 = !{!51, !51, i64 0}
!95 = distinct !{!95, !92}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass