; LLVM IR from Derek-TH-Wang/quadruped_ctrl :: src/GaitCtrller.ll (ZN11GaitCtrller16TorqueCalculatorEPdS0_S0_)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.GaitCtrller = type { i32, i32, i8, %"class.std::vector", [8 x i8], %"class.Eigen::Matrix", %class.Quadruped, %class.FloatingBaseModel, %"class.std::unique_ptr", %"class.std::unique_ptr.153", %"class.std::unique_ptr.161", %struct.LegData, %struct.LegCommand, %struct.ControlFSMData, [8 x i8], %struct.VectorNavData, %"class.std::unique_ptr.169", [8 x i8], %struct.StateEstimate, %"class.std::unique_ptr.187", %"class.std::unique_ptr.195", %"class.std::unique_ptr.203", [8 x i8] }
%"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 { [4 x float] }
%class.Quadruped = type { i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, [4 x i8], %class.SpatialInertia, %class.SpatialInertia, %class.SpatialInertia, %class.SpatialInertia, %class.SpatialInertia, %class.SpatialInertia, %class.SpatialInertia, %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", [8 x i8] }
%class.SpatialInertia = type { %"class.Eigen::Matrix.3" }
%"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 { [36 x float] }
%"class.Eigen::Matrix.13" = type { %"class.Eigen::PlainObjectBase.14" }
%"class.Eigen::PlainObjectBase.14" = type { %"class.Eigen::DenseStorage.21" }
%"class.Eigen::DenseStorage.21" = type { %"struct.Eigen::internal::plain_array.22" }
%"struct.Eigen::internal::plain_array.22" = type { [3 x float] }
%class.FloatingBaseModel = type { i64, %"class.Eigen::Matrix.13", %"class.std::vector.23", %"class.std::vector.28", %"class.std::vector.28", %"class.std::vector.28", %"class.std::vector.33", %"class.std::vector.38", %"class.std::vector.43", %"class.std::vector.43", %"class.std::vector.48", %"class.std::vector.48", %"class.std::vector.54", i64, %"class.std::vector.59", %"class.std::vector.64", %"class.std::vector.59", %"class.std::vector.64", %"class.std::vector.64", %"class.std::vector.69", [8 x i8], %struct.FBModelState, %struct.FBModelStateDerivative, %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.89", %"class.std::vector.48", %"class.std::vector.43", %"class.std::vector.43", %"class.std::vector.43", %"class.std::vector.43", %"class.std::vector.43", %"class.Eigen::Matrix.95", %"class.Eigen::Matrix.95", %"class.Eigen::Matrix.80", %"class.Eigen::Matrix.80", %"class.std::vector.104", %"class.std::vector.89", %"class.std::vector.110", %"class.std::vector.116", i8, i8, i8, i8, i8, i8, i8, %"class.Eigen::Matrix.95", %"class.Eigen::Matrix.95", %"class.Eigen::ColPivHouseholderQR" }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<spatial::JointType, std::allocator<spatial::JointType>>::_Vector_impl" }
%"struct.std::_Vector_base<spatial::JointType, std::allocator<spatial::JointType>>::_Vector_impl" = type { %"struct.std::_Vector_base<spatial::JointType, std::allocator<spatial::JointType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<spatial::JointType, std::allocator<spatial::JointType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<ori::CoordinateAxis, std::allocator<ori::CoordinateAxis>>::_Vector_impl" }
%"struct.std::_Vector_base<ori::CoordinateAxis, std::allocator<ori::CoordinateAxis>>::_Vector_impl" = type { %"struct.std::_Vector_base<ori::CoordinateAxis, std::allocator<ori::CoordinateAxis>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ori::CoordinateAxis, std::allocator<ori::CoordinateAxis>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.54" = type { %"struct.std::_Vector_base.55" }
%"struct.std::_Vector_base.55" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.59" = type { %"struct.std::_Vector_base.60" }
%"struct.std::_Vector_base.60" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.64" = type { %"struct.std::_Vector_base.65" }
%"struct.std::_Vector_base.65" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 3, 1>, std::allocator<Eigen::Matrix<float, 3, 1>>>::_Vector_impl" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 3, 1>, std::allocator<Eigen::Matrix<float, 3, 1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 3, 1>, std::allocator<Eigen::Matrix<float, 3, 1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 3, 1>, std::allocator<Eigen::Matrix<float, 3, 1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.69" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%struct.FBModelState = type { %"class.Eigen::Matrix", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.70", %"class.Eigen::Matrix.80", %"class.Eigen::Matrix.80", [8 x i8] }
%"class.Eigen::Matrix.70" = type { %"class.Eigen::PlainObjectBase.71" }
%"class.Eigen::PlainObjectBase.71" = type { %"class.Eigen::DenseStorage.78" }
%"class.Eigen::DenseStorage.78" = type { %"struct.Eigen::internal::plain_array.79" }
%"struct.Eigen::internal::plain_array.79" = type { [6 x float] }
%struct.FBModelStateDerivative = type { %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.70", %"class.Eigen::Matrix.80" }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = type { %"struct.std::_Vector_base<SpatialInertia<float>, Eigen::aligned_allocator<SpatialInertia<float>>>::_Vector_impl" }
%"struct.std::_Vector_base<SpatialInertia<float>, Eigen::aligned_allocator<SpatialInertia<float>>>::_Vector_impl" = type { %"struct.std::_Vector_base<SpatialInertia<float>, Eigen::aligned_allocator<SpatialInertia<float>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<SpatialInertia<float>, Eigen::aligned_allocator<SpatialInertia<float>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 6, 6>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, 6>>>::_Vector_impl" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 6, 6>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, 6>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 6, 6>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, 6>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 6, 6>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, 6>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Eigen::Matrix.80" = type { %"class.Eigen::PlainObjectBase.81" }
%"class.Eigen::PlainObjectBase.81" = type { %"class.Eigen::DenseStorage.88" }
%"class.Eigen::DenseStorage.88" = type { ptr, i64 }
%"class.std::vector.104" = type { %"struct.std::_Vector_base.105" }
%"struct.std::_Vector_base.105" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 6, -1>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, -1>>>::_Vector_impl" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 6, -1>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, -1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 6, -1>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, -1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 6, -1>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, -1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.89" = type { %"struct.std::_Vector_base.90" }
%"struct.std::_Vector_base.90" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 6, 1>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, 1>>>::_Vector_impl" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 6, 1>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, 1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 6, 1>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, 1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 6, 1>, Eigen::aligned_allocator<Eigen::Matrix<float, 6, 1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.110" = type { %"struct.std::_Vector_base.111" }
%"struct.std::_Vector_base.111" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 3, -1>, Eigen::aligned_allocator<Eigen::Matrix<float, 3, -1>>>::_Vector_impl" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 3, -1>, Eigen::aligned_allocator<Eigen::Matrix<float, 3, -1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 3, -1>, Eigen::aligned_allocator<Eigen::Matrix<float, 3, -1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 3, -1>, Eigen::aligned_allocator<Eigen::Matrix<float, 3, -1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.116" = type { %"struct.std::_Vector_base.117" }
%"struct.std::_Vector_base.117" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 3, 1>, Eigen::aligned_allocator<Eigen::Matrix<float, 3, 1>>>::_Vector_impl" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 3, 1>, Eigen::aligned_allocator<Eigen::Matrix<float, 3, 1>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Eigen::Matrix<float, 3, 1>, Eigen::aligned_allocator<Eigen::Matrix<float, 3, 1>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Eigen::Matrix<float, 3, 1>, Eigen::aligned_allocator<Eigen::Matrix<float, 3, 1>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Eigen::Matrix.95" = type { %"class.Eigen::PlainObjectBase.96" }
%"class.Eigen::PlainObjectBase.96" = type { %"class.Eigen::DenseStorage.103" }
%"class.Eigen::DenseStorage.103" = type { ptr, i64, i64 }
%"class.Eigen::ColPivHouseholderQR" = type { %"class.Eigen::Matrix.3", %"class.Eigen::Matrix.70", %"class.Eigen::PermutationMatrix", %"class.Eigen::Matrix.131", %"class.Eigen::Matrix.141", %"class.Eigen::Matrix.141", %"class.Eigen::Matrix.141", i8, i8, float, float, i64, i64, [8 x i8] }
%"class.Eigen::PermutationMatrix" = type { %"class.Eigen::Matrix.121" }
%"class.Eigen::Matrix.121" = type { %"class.Eigen::PlainObjectBase.122" }
%"class.Eigen::PlainObjectBase.122" = type { %"class.Eigen::DenseStorage.129" }
%"class.Eigen::DenseStorage.129" = type { %"struct.Eigen::internal::plain_array.130" }
%"struct.Eigen::internal::plain_array.130" = type { [6 x i32] }
%"class.Eigen::Matrix.131" = type { %"class.Eigen::PlainObjectBase.132" }
%"class.Eigen::PlainObjectBase.132" = type { %"class.Eigen::DenseStorage.139" }
%"class.Eigen::DenseStorage.139" = type { %"struct.Eigen::internal::plain_array.140" }
%"struct.Eigen::internal::plain_array.140" = type { [6 x i64] }
%"class.Eigen::Matrix.141" = type { %"class.Eigen::PlainObjectBase.142" }
%"class.Eigen::PlainObjectBase.142" = type { %"class.Eigen::DenseStorage.149" }
%"class.Eigen::DenseStorage.149" = type { %"struct.Eigen::internal::plain_array.150" }
%"struct.Eigen::internal::plain_array.150" = type { [6 x float] }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.152" }
%"struct.std::_Head_base.152" = type { ptr }
%"class.std::unique_ptr.153" = type { %"struct.std::__uniq_ptr_data.154" }
%"struct.std::__uniq_ptr_data.154" = type { %"class.std::__uniq_ptr_impl.155" }
%"class.std::__uniq_ptr_impl.155" = type { %"class.std::tuple.156" }
%"class.std::tuple.156" = type { %"struct.std::_Tuple_impl.157" }
%"struct.std::_Tuple_impl.157" = type { %"struct.std::_Head_base.160" }
%"struct.std::_Head_base.160" = type { ptr }
%"class.std::unique_ptr.161" = type { %"struct.std::__uniq_ptr_data.162" }
%"struct.std::__uniq_ptr_data.162" = type { %"class.std::__uniq_ptr_impl.163" }
%"class.std::__uniq_ptr_impl.163" = type { %"class.std::tuple.164" }
%"class.std::tuple.164" = type { %"struct.std::_Tuple_impl.165" }
%"struct.std::_Tuple_impl.165" = type { %"struct.std::_Head_base.168" }
%"struct.std::_Head_base.168" = type { ptr }
%struct.LegData = type { [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float] }
%struct.LegCommand = type { [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x float], [4 x i32] }
%struct.ControlFSMData = type { ptr, ptr, ptr, ptr }
%struct.VectorNavData = type { %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", [8 x i8], %"class.Eigen::Matrix", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", [8 x i8] }
%"class.std::unique_ptr.169" = type { %"struct.std::__uniq_ptr_data.170" }
%"struct.std::__uniq_ptr_data.170" = type { %"class.std::__uniq_ptr_impl.171" }
%"class.std::__uniq_ptr_impl.171" = type { %"class.std::tuple.172" }
%"class.std::tuple.172" = type { %"struct.std::_Tuple_impl.173" }
%"struct.std::_Tuple_impl.173" = type { %"struct.std::_Head_base.176" }
%"struct.std::_Head_base.176" = type { ptr }
%struct.StateEstimate = type { %"class.Eigen::Matrix", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", [8 x i8], %"class.Eigen::Matrix", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.177", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", [4 x i8] }
%"class.Eigen::Matrix.177" = type { %"class.Eigen::PlainObjectBase.178" }
%"class.Eigen::PlainObjectBase.178" = type { %"class.Eigen::DenseStorage.185" }
%"class.Eigen::DenseStorage.185" = type { %"struct.Eigen::internal::plain_array.186" }
%"struct.Eigen::internal::plain_array.186" = type { [9 x float] }
%"class.std::unique_ptr.187" = type { %"struct.std::__uniq_ptr_data.188" }
%"struct.std::__uniq_ptr_data.188" = type { %"class.std::__uniq_ptr_impl.189" }
%"class.std::__uniq_ptr_impl.189" = type { %"class.std::tuple.190" }
%"class.std::tuple.190" = type { %"struct.std::_Tuple_impl.191" }
%"struct.std::_Tuple_impl.191" = type { %"struct.std::_Head_base.194" }
%"struct.std::_Head_base.194" = type { ptr }
%"class.std::unique_ptr.195" = type { %"struct.std::__uniq_ptr_data.196" }
%"struct.std::__uniq_ptr_data.196" = type { %"class.std::__uniq_ptr_impl.197" }
%"class.std::__uniq_ptr_impl.197" = type { %"class.std::tuple.198" }
%"class.std::tuple.198" = type { %"struct.std::_Tuple_impl.199" }
%"struct.std::_Tuple_impl.199" = type { %"struct.std::_Head_base.202" }
%"struct.std::_Head_base.202" = type { ptr }
%"class.std::unique_ptr.203" = type { %"struct.std::__uniq_ptr_data.204" }
%"struct.std::__uniq_ptr_data.204" = type { %"class.std::__uniq_ptr_impl.205" }
%"class.std::__uniq_ptr_impl.205" = type { %"class.std::tuple.206" }
%"class.std::tuple.206" = type { %"struct.std::_Tuple_impl.207" }
%"struct.std::_Tuple_impl.207" = type { %"struct.std::_Head_base.210" }
%"struct.std::_Head_base.210" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.6 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [38 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11GaitCtrller7PreWorkEPdS0_(ptr noundef nonnull align 16 dereferenceable(3816), ptr noundef, ptr noundef) #0 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11GaitCtrller16TorqueCalculatorEPdS0_S0_(ptr noundef nonnull align 16 dereferenceable(3816) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %"class.std::vector", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::vector", align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %15 = load ptr, ptr %5, align 8
  %16 = load ptr, ptr %6, align 8, !tbaa !5
  %17 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN11GaitCtrller7PreWorkEPdS0_(ptr noundef nonnull align 16 dereferenceable(3816) %15, ptr noundef %16, ptr noundef %17)
  %18 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 9
  %19 = call noundef ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  call void @_ZN13LegControllerIfE11zeroCommandEv(ptr noundef nonnull align 8 dereferenceable(1408) %19)
  %20 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 9
  %21 = call noundef ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  call void @_ZN13LegControllerIfE10setEnabledEb(ptr noundef nonnull align 8 dereferenceable(1408) %21, i1 noundef zeroext true)
  %22 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 9
  %23 = call noundef ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #5
  call void @_ZN13LegControllerIfE20setMaxTorqueCheetah3Ef(ptr noundef nonnull align 8 dereferenceable(1408) %23, float noundef 2.085000e+02)
  %24 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 20
  %25 = call noundef ptr @_ZNKSt10unique_ptrI19DesiredStateCommandIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  %26 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 3
  call void @_ZNSt6vectorIdSaIdEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %26)
  invoke void @_ZN19DesiredStateCommandIfE22convertToStateCommandsESt6vectorIdSaIdEE(ptr noundef nonnull align 16 dereferenceable(1252) %25, ptr noundef %9)
          to label %27 unwind label %37

27:                                               ; preds = %4
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  %28 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 21
  %29 = call noundef ptr @_ZNKSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #5
  %30 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 10
  %31 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNKSt10unique_ptrI23StateEstimatorContainerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #5
  %32 = call noundef zeroext i1 @_ZN13SafetyCheckerIfE20checkSafeOrientationER23StateEstimatorContainerIfE(ptr noundef nonnull align 1 dereferenceable(1) %29, ptr noundef nonnull align 16 dereferenceable(96) %31)
  br i1 %32, label %41, label %33

33:                                               ; preds = %27
  %34 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 2
  store i8 0, ptr %34, align 8, !tbaa !9
  %35 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.6)
  %36 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %75

37:                                               ; preds = %4
  %38 = landingpad { ptr, i32 }
          cleanup
  %39 = extractvalue { ptr, i32 } %38, 0
  store ptr %39, ptr %10, align 8
  %40 = extractvalue { ptr, i32 } %38, 1
  store i32 %40, ptr %11, align 4
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  br label %178

41:                                               ; preds = %27
  %42 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 21
  %43 = call noundef ptr @_ZNKSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #5
  %44 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 6
  %45 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 9
  %46 = call noundef nonnull align 8 dereferenceable(1408) ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #5
  %47 = call noundef zeroext i1 @_ZN13SafetyCheckerIfE13checkPDesFootER9QuadrupedIfER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1) %43, ptr noundef nonnull align 16 dereferenceable(1160) %44, ptr noundef nonnull align 8 dereferenceable(1408) %46)
  br i1 %47, label %52, label %48

48:                                               ; preds = %41
  %49 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 2
  store i8 0, ptr %49, align 8, !tbaa !9
  %50 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.7)
  %51 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %74

52:                                               ; preds = %41
  %53 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 21
  %54 = call noundef ptr @_ZNKSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #5
  %55 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 9
  %56 = call noundef nonnull align 8 dereferenceable(1408) ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #5
  %57 = call noundef zeroext i1 @_ZN13SafetyCheckerIfE21checkForceFeedForwardER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1) %54, ptr noundef nonnull align 8 dereferenceable(1408) %56)
  br i1 %57, label %62, label %58

58:                                               ; preds = %52
  %59 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 2
  store i8 0, ptr %59, align 8, !tbaa !9
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.8)
  %61 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %73

62:                                               ; preds = %52
  %63 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 21
  %64 = call noundef ptr @_ZNKSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #5
  %65 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 9
  %66 = call noundef nonnull align 8 dereferenceable(1408) ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #5
  %67 = call noundef zeroext i1 @_ZN13SafetyCheckerIfE15checkJointLimitER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1) %64, ptr noundef nonnull align 8 dereferenceable(1408) %66)
  br i1 %67, label %72, label %68

68:                                               ; preds = %62
  %69 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 2
  store i8 0, ptr %69, align 8, !tbaa !9
  %70 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.9)
  %71 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %72

72:                                               ; preds = %68, %62
  br label %73

73:                                               ; preds = %72, %58
  br label %74

74:                                               ; preds = %73, %48
  br label %75

75:                                               ; preds = %74, %33
  %76 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 8
  %77 = call noundef ptr @_ZNKSt10unique_ptrI19ConvexMPCLocomotionSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %76) #5
  %78 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 6
  %79 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 9
  %80 = call noundef nonnull align 8 dereferenceable(1408) ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %79) #5
  %81 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 10
  %82 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNKSt10unique_ptrI23StateEstimatorContainerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %81) #5
  %83 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 20
  %84 = call noundef nonnull align 16 dereferenceable(1252) ptr @_ZNKSt10unique_ptrI19DesiredStateCommandIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %83) #5
  %85 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 3
  call void @_ZNSt6vectorIdSaIdEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %85)
  %86 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 0
  %87 = load i32, ptr %86, align 16, !tbaa !170
  %88 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 1
  %89 = load i32, ptr %88, align 4, !tbaa !171
  invoke void @_ZN19ConvexMPCLocomotion3runIfEEvR9QuadrupedIT_ER13LegControllerIS2_ER23StateEstimatorContainerIfER19DesiredStateCommandIS2_ESt6vectorIdSaIdEEii(ptr noundef nonnull align 16 dereferenceable(7184) %77, ptr noundef nonnull align 16 dereferenceable(1160) %78, ptr noundef nonnull align 8 dereferenceable(1408) %80, ptr noundef nonnull align 16 dereferenceable(96) %82, ptr noundef nonnull align 16 dereferenceable(1252) %84, ptr noundef %12, i32 noundef %87, i32 noundef %89)
          to label %90 unwind label %103

90:                                               ; preds = %75
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #5
  %91 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 9
  %92 = call noundef ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %91) #5
  %93 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 12
  %94 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 5
  call void @_ZN13LegControllerIfE13updateCommandEP10LegCommandRN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE(ptr noundef nonnull align 8 dereferenceable(1408) %92, ptr noundef %93, ptr noundef nonnull align 16 dereferenceable(16) %94)
  %95 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 2
  %96 = load i8, ptr %95, align 8, !tbaa !9, !range !172, !noundef !173
  %97 = trunc i8 %96 to i1
  br i1 %97, label %98, label %150

98:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  store i32 0, ptr %13, align 4, !tbaa !174
  br label %99

99:                                               ; preds = %146, %98
  %100 = load i32, ptr %13, align 4, !tbaa !174
  %101 = icmp slt i32 %100, 4
  br i1 %101, label %107, label %102

102:                                              ; preds = %99
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  br label %149

103:                                              ; preds = %75
  %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 @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #5
  br label %178

107:                                              ; preds = %99
  %108 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 12
  %109 = getelementptr inbounds %struct.LegCommand, ptr %108, i32 0, i32 12
  %110 = load i32, ptr %13, align 4, !tbaa !174
  %111 = sext i32 %110 to i64
  %112 = getelementptr inbounds [4 x float], ptr %109, i64 0, i64 %111
  %113 = load float, ptr %112, align 4, !tbaa !175
  %114 = fpext float %113 to double
  %115 = load ptr, ptr %8, align 8, !tbaa !5
  %116 = load i32, ptr %13, align 4, !tbaa !174
  %117 = mul nsw i32 %116, 3
  %118 = sext i32 %117 to i64
  %119 = getelementptr inbounds double, ptr %115, i64 %118
  store double %114, ptr %119, align 8, !tbaa !176
  %120 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 12
  %121 = getelementptr inbounds %struct.LegCommand, ptr %120, i32 0, i32 13
  %122 = load i32, ptr %13, align 4, !tbaa !174
  %123 = sext i32 %122 to i64
  %124 = getelementptr inbounds [4 x float], ptr %121, i64 0, i64 %123
  %125 = load float, ptr %124, align 4, !tbaa !175
  %126 = fpext float %125 to double
  %127 = load ptr, ptr %8, align 8, !tbaa !5
  %128 = load i32, ptr %13, align 4, !tbaa !174
  %129 = mul nsw i32 %128, 3
  %130 = add nsw i32 %129, 1
  %131 = sext i32 %130 to i64
  %132 = getelementptr inbounds double, ptr %127, i64 %131
  store double %126, ptr %132, align 8, !tbaa !176
  %133 = getelementptr inbounds %class.GaitCtrller, ptr %15, i32 0, i32 12
  %134 = getelementptr inbounds %struct.LegCommand, ptr %133, i32 0, i32 14
  %135 = load i32, ptr %13, align 4, !tbaa !174
  %136 = sext i32 %135 to i64
  %137 = getelementptr inbounds [4 x float], ptr %134, i64 0, i64 %136
  %138 = load float, ptr %137, align 4, !tbaa !175
  %139 = fpext float %138 to double
  %140 = load ptr, ptr %8, align 8, !tbaa !5
  %141 = load i32, ptr %13, align 4, !tbaa !174
  %142 = mul nsw i32 %141, 3
  %143 = add nsw i32 %142, 2
  %144 = sext i32 %143 to i64
  %145 = getelementptr inbounds double, ptr %140, i64 %144
  store double %139, ptr %145, align 8, !tbaa !176
  br label %146

146:                                              ; preds = %107
  %147 = load i32, ptr %13, align 4, !tbaa !174
  %148 = add nsw i32 %147, 1
  store i32 %148, ptr %13, align 4, !tbaa !174
  br label %99, !llvm.loop !178

149:                                              ; preds = %102
  br label %177

150:                                              ; preds = %90
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  store i32 0, ptr %14, align 4, !tbaa !174
  br label %151

151:                                              ; preds = %173, %150
  %152 = load i32, ptr %14, align 4, !tbaa !174
  %153 = icmp slt i32 %152, 4
  br i1 %153, label %155, label %154

154:                                              ; preds = %151
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  br label %176

155:                                              ; preds = %151
  %156 = load ptr, ptr %8, align 8, !tbaa !5
  %157 = load i32, ptr %14, align 4, !tbaa !174
  %158 = mul nsw i32 %157, 3
  %159 = sext i32 %158 to i64
  %160 = getelementptr inbounds double, ptr %156, i64 %159
  store double 0.000000e+00, ptr %160, align 8, !tbaa !176
  %161 = load ptr, ptr %8, align 8, !tbaa !5
  %162 = load i32, ptr %14, align 4, !tbaa !174
  %163 = mul nsw i32 %162, 3
  %164 = add nsw i32 %163, 1
  %165 = sext i32 %164 to i64
  %166 = getelementptr inbounds double, ptr %161, i64 %165
  store double 0.000000e+00, ptr %166, align 8, !tbaa !176
  %167 = load ptr, ptr %8, align 8, !tbaa !5
  %168 = load i32, ptr %14, align 4, !tbaa !174
  %169 = mul nsw i32 %168, 3
  %170 = add nsw i32 %169, 2
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds double, ptr %167, i64 %171
  store double 0.000000e+00, ptr %172, align 8, !tbaa !176
  br label %173

173:                                              ; preds = %155
  %174 = load i32, ptr %14, align 4, !tbaa !174
  %175 = add nsw i32 %174, 1
  store i32 %175, ptr %14, align 4, !tbaa !174
  br label %151, !llvm.loop !180

176:                                              ; preds = %154
  br label %177

177:                                              ; preds = %176, %149
  ret void

178:                                              ; preds = %103, %37
  %179 = load ptr, ptr %10, align 8
  %180 = load i32, ptr %11, align 4
  %181 = insertvalue { ptr, i32 } poison, ptr %179, 0
  %182 = insertvalue { ptr, i32 } %181, i32 %180, 1
  resume { ptr, i32 } %182
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

declare void @_ZN13LegControllerIfE11zeroCommandEv(ptr noundef nonnull align 8 dereferenceable(1408)) #4

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

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

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

declare void @_ZN19DesiredStateCommandIfE22convertToStateCommandsESt6vectorIdSaIdEE(ptr noundef nonnull align 16 dereferenceable(1252), ptr noundef) #4

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

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

declare noundef zeroext i1 @_ZN13SafetyCheckerIfE20checkSafeOrientationER23StateEstimatorContainerIfE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(96)) #4

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

declare noundef zeroext i1 @_ZN13SafetyCheckerIfE13checkPDesFootER9QuadrupedIfER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(1160), ptr noundef nonnull align 8 dereferenceable(1408)) #4

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

declare noundef zeroext i1 @_ZN13SafetyCheckerIfE21checkForceFeedForwardER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(1408)) #4

declare noundef zeroext i1 @_ZN13SafetyCheckerIfE15checkJointLimitER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(1408)) #4

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

declare void @_ZN19ConvexMPCLocomotion3runIfEEvR9QuadrupedIT_ER13LegControllerIS2_ER23StateEstimatorContainerIfER19DesiredStateCommandIS2_ESt6vectorIdSaIdEEii(ptr noundef nonnull align 16 dereferenceable(7184), ptr noundef nonnull align 16 dereferenceable(1160), ptr noundef nonnull align 8 dereferenceable(1408), ptr noundef nonnull align 16 dereferenceable(96), ptr noundef nonnull align 16 dereferenceable(1252), ptr noundef, i32 noundef, i32 noundef) #4

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

declare void @_ZN13LegControllerIfE13updateCommandEP10LegCommandRN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE(ptr noundef nonnull align 8 dereferenceable(1408), ptr noundef, ptr noundef nonnull align 16 dereferenceable(16)) #4

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { "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, !12, i64 8}
!10 = !{!"_ZTS11GaitCtrller", !11, i64 0, !11, i64 4, !12, i64 8, !13, i64 16, !17, i64 48, !21, i64 64, !33, i64 1232, !119, i64 3104, !125, i64 3112, !131, i64 3120, !137, i64 3128, !138, i64 3224, !139, i64 3480, !140, i64 3520, !141, i64 3600, !147, i64 3616, !152, i64 3792, !158, i64 3800, !164, i64 3808}
!11 = !{!"int", !7, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!"_ZTSSt6vectorIdSaIdEE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!17 = !{!"_ZTSN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE", !18, i64 0}
!18 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi4ELi1ELi0ELi4ELi1EEEEE", !19, i64 0}
!19 = !{!"_ZTSN5Eigen12DenseStorageIfLi4ELi4ELi1ELi0EEE", !20, i64 0}
!20 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi4ELi0ELi16EEE", !7, i64 0}
!21 = !{!"_ZTS9QuadrupedIfE", !22, i64 0, !23, i64 4, !23, i64 8, !23, i64 12, !23, i64 16, !23, i64 20, !23, i64 24, !23, i64 28, !23, i64 32, !23, i64 36, !23, i64 40, !23, i64 44, !23, i64 48, !23, i64 52, !23, i64 56, !23, i64 60, !23, i64 64, !23, i64 68, !23, i64 72, !24, i64 80, !24, i64 224, !24, i64 368, !24, i64 512, !24, i64 656, !24, i64 800, !24, i64 944, !29, i64 1088, !29, i64 1100, !29, i64 1112, !29, i64 1124, !29, i64 1136, !29, i64 1148}
!22 = !{!"_ZTS9RobotType", !7, i64 0}
!23 = !{!"float", !7, i64 0}
!24 = !{!"_ZTS14SpatialInertiaIfE", !25, i64 0}
!25 = !{!"_ZTSN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEE", !26, i64 0}
!26 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi6ELi6ELi0ELi6ELi6EEEEE", !27, i64 0}
!27 = !{!"_ZTSN5Eigen12DenseStorageIfLi36ELi6ELi6ELi0EEE", !28, i64 0}
!28 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi36ELi0ELi16EEE", !7, i64 0}
!29 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEE", !30, i64 0}
!30 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEEEE", !31, i64 0}
!31 = !{!"_ZTSN5Eigen12DenseStorageIfLi3ELi3ELi1ELi0EEE", !32, i64 0}
!32 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi3ELi0ELi0EEE", !7, i64 0}
!33 = !{!"_ZTS17FloatingBaseModelIfE", !34, i64 0, !29, i64 8, !35, i64 24, !39, i64 48, !39, i64 72, !39, i64 96, !43, i64 120, !47, i64 144, !51, i64 168, !51, i64 192, !55, i64 216, !55, i64 240, !59, i64 264, !34, i64 288, !63, i64 296, !67, i64 320, !63, i64 344, !67, i64 368, !67, i64 392, !71, i64 416, !77, i64 464, !85, i64 560, !86, i64 616, !86, i64 640, !86, i64 664, !86, i64 688, !86, i64 712, !86, i64 736, !86, i64 760, !86, i64 784, !86, i64 808, !86, i64 832, !86, i64 856, !86, i64 880, !86, i64 904, !86, i64 928, !86, i64 952, !86, i64 976, !86, i64 1000, !86, i64 1024, !86, i64 1048, !86, i64 1072, !86, i64 1096, !86, i64 1120, !55, i64 1144, !51, i64 1168, !51, i64 1192, !51, i64 1216, !51, i64 1240, !51, i64 1264, !90, i64 1288, !90, i64 1312, !82, i64 1336, !82, i64 1352, !93, i64 1368, !86, i64 1392, !97, i64 1416, !101, i64 1440, !12, i64 1464, !12, i64 1465, !12, i64 1466, !12, i64 1467, !12, i64 1468, !12, i64 1469, !12, i64 1470, !90, i64 1472, !90, i64 1496, !105, i64 1520}
!34 = !{!"long", !7, i64 0}
!35 = !{!"_ZTSSt6vectorIiSaIiEE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt6vectorIfSaIfEE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!43 = !{!"_ZTSSt6vectorIN7spatial9JointTypeESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseIN7spatial9JointTypeESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN7spatial9JointTypeESaIS1_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseIN7spatial9JointTypeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!47 = !{!"_ZTSSt6vectorIN3ori14CoordinateAxisESaIS1_EE", !48, i64 0}
!48 = !{!"_ZTSSt12_Vector_baseIN3ori14CoordinateAxisESaIS1_EE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseIN3ori14CoordinateAxisESaIS1_EE12_Vector_implE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseIN3ori14CoordinateAxisESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!51 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEENS0_17aligned_allocatorIS2_EEE", !52, i64 0}
!52 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEENS0_17aligned_allocatorIS2_EEE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!55 = !{!"_ZTSSt6vectorI14SpatialInertiaIfEN5Eigen17aligned_allocatorIS1_EEE", !56, i64 0}
!56 = !{!"_ZTSSt12_Vector_baseI14SpatialInertiaIfEN5Eigen17aligned_allocatorIS1_EEE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseI14SpatialInertiaIfEN5Eigen17aligned_allocatorIS1_EEE12_Vector_implE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseI14SpatialInertiaIfEN5Eigen17aligned_allocatorIS1_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!59 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !60, i64 0}
!60 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!63 = !{!"_ZTSSt6vectorImSaImEE", !64, i64 0}
!64 = !{!"_ZTSSt12_Vector_baseImSaImEE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseImSaImEE12_Vector_implE", !66, i64 0}
!66 = !{!"_ZTSNSt12_Vector_baseImSaImEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!67 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEESaIS2_EE", !68, i64 0}
!68 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEESaIS2_EE", !69, i64 0}
!69 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEESaIS2_EE12_Vector_implE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!71 = !{!"_ZTSSt6vectorIbSaIbEE", !72, i64 0}
!72 = !{!"_ZTSSt13_Bvector_baseISaIbEE", !73, i64 0}
!73 = !{!"_ZTSNSt13_Bvector_baseISaIbEE13_Bvector_implE", !74, i64 0}
!74 = !{!"_ZTSNSt13_Bvector_baseISaIbEE18_Bvector_impl_dataE", !75, i64 0, !75, i64 16, !6, i64 32}
!75 = !{!"_ZTSSt13_Bit_iterator", !76, i64 0}
!76 = !{!"_ZTSSt18_Bit_iterator_base", !6, i64 0, !11, i64 8}
!77 = !{!"_ZTS12FBModelStateIfE", !17, i64 0, !29, i64 16, !78, i64 28, !82, i64 56, !82, i64 72}
!78 = !{!"_ZTSN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEE", !79, i64 0}
!79 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi6ELi1ELi0ELi6ELi1EEEEE", !80, i64 0}
!80 = !{!"_ZTSN5Eigen12DenseStorageIfLi6ELi6ELi1ELi0EEE", !81, i64 0}
!81 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi6ELi0ELi0EEE", !7, i64 0}
!82 = !{!"_ZTSN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEE", !83, i64 0}
!83 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEEE", !84, i64 0}
!84 = !{!"_ZTSN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EEE", !6, i64 0, !34, i64 8}
!85 = !{!"_ZTS22FBModelStateDerivativeIfE", !29, i64 0, !78, i64 12, !82, i64 40}
!86 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEENS0_17aligned_allocatorIS2_EEE", !87, i64 0}
!87 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEENS0_17aligned_allocatorIS2_EEE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !89, i64 0}
!89 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!90 = !{!"_ZTSN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEE", !91, i64 0}
!91 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEE", !92, i64 0}
!92 = !{!"_ZTSN5Eigen12DenseStorageIfLin1ELin1ELin1ELi0EEE", !6, i64 0, !34, i64 8, !34, i64 16}
!93 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi6ELin1ELi0ELi6ELin1EEENS0_17aligned_allocatorIS2_EEE", !94, i64 0}
!94 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi6ELin1ELi0ELi6ELin1EEENS0_17aligned_allocatorIS2_EEE", !95, i64 0}
!95 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELin1ELi0ELi6ELin1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !96, i64 0}
!96 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELin1ELi0ELi6ELin1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!97 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi3ELin1ELi0ELi3ELin1EEENS0_17aligned_allocatorIS2_EEE", !98, i64 0}
!98 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi3ELin1ELi0ELi3ELin1EEENS0_17aligned_allocatorIS2_EEE", !99, i64 0}
!99 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELin1ELi0ELi3ELin1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !100, i64 0}
!100 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELin1ELi0ELi3ELin1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!101 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEENS0_17aligned_allocatorIS2_EEE", !102, i64 0}
!102 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEENS0_17aligned_allocatorIS2_EEE", !103, i64 0}
!103 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !104, i64 0}
!104 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!105 = !{!"_ZTSN5Eigen19ColPivHouseholderQRINS_6MatrixIfLi6ELi6ELi0ELi6ELi6EEEEE", !25, i64 0, !78, i64 144, !106, i64 168, !111, i64 192, !115, i64 240, !115, i64 264, !115, i64 288, !12, i64 312, !12, i64 313, !23, i64 316, !23, i64 320, !34, i64 328, !34, i64 336}
!106 = !{!"_ZTSN5Eigen17PermutationMatrixILi6ELi6EiEE", !107, i64 0}
!107 = !{!"_ZTSN5Eigen6MatrixIiLi6ELi1ELi0ELi6ELi1EEE", !108, i64 0}
!108 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIiLi6ELi1ELi0ELi6ELi1EEEEE", !109, i64 0}
!109 = !{!"_ZTSN5Eigen12DenseStorageIiLi6ELi6ELi1ELi0EEE", !110, i64 0}
!110 = !{!"_ZTSN5Eigen8internal11plain_arrayIiLi6ELi0ELi0EEE", !7, i64 0}
!111 = !{!"_ZTSN5Eigen6MatrixIlLi1ELi6ELi1ELi1ELi6EEE", !112, i64 0}
!112 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIlLi1ELi6ELi1ELi1ELi6EEEEE", !113, i64 0}
!113 = !{!"_ZTSN5Eigen12DenseStorageIlLi6ELi1ELi6ELi1EEE", !114, i64 0}
!114 = !{!"_ZTSN5Eigen8internal11plain_arrayIlLi6ELi1ELi16EEE", !7, i64 0}
!115 = !{!"_ZTSN5Eigen6MatrixIfLi1ELi6ELi1ELi1ELi6EEE", !116, i64 0}
!116 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi1ELi6ELi1ELi1ELi6EEEEE", !117, i64 0}
!117 = !{!"_ZTSN5Eigen12DenseStorageIfLi6ELi1ELi6ELi1EEE", !118, i64 0}
!118 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi6ELi1ELi0EEE", !7, i64 0}
!119 = !{!"_ZTSSt10unique_ptrI19ConvexMPCLocomotionSt14default_deleteIS0_EE", !120, i64 0}
!120 = !{!"_ZTSSt15__uniq_ptr_dataI19ConvexMPCLocomotionSt14default_deleteIS0_ELb1ELb1EE", !121, i64 0}
!121 = !{!"_ZTSSt15__uniq_ptr_implI19ConvexMPCLocomotionSt14default_deleteIS0_EE", !122, i64 0}
!122 = !{!"_ZTSSt5tupleIJP19ConvexMPCLocomotionSt14default_deleteIS0_EEE", !123, i64 0}
!123 = !{!"_ZTSSt11_Tuple_implILm0EJP19ConvexMPCLocomotionSt14default_deleteIS0_EEE", !124, i64 0}
!124 = !{!"_ZTSSt10_Head_baseILm0EP19ConvexMPCLocomotionLb0EE", !6, i64 0}
!125 = !{!"_ZTSSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EE", !126, i64 0}
!126 = !{!"_ZTSSt15__uniq_ptr_dataI13LegControllerIfESt14default_deleteIS1_ELb1ELb1EE", !127, i64 0}
!127 = !{!"_ZTSSt15__uniq_ptr_implI13LegControllerIfESt14default_deleteIS1_EE", !128, i64 0}
!128 = !{!"_ZTSSt5tupleIJP13LegControllerIfESt14default_deleteIS1_EEE", !129, i64 0}
!129 = !{!"_ZTSSt11_Tuple_implILm0EJP13LegControllerIfESt14default_deleteIS1_EEE", !130, i64 0}
!130 = !{!"_ZTSSt10_Head_baseILm0EP13LegControllerIfELb0EE", !6, i64 0}
!131 = !{!"_ZTSSt10unique_ptrI23StateEstimatorContainerIfESt14default_deleteIS1_EE", !132, i64 0}
!132 = !{!"_ZTSSt15__uniq_ptr_dataI23StateEstimatorContainerIfESt14default_deleteIS1_ELb1ELb1EE", !133, i64 0}
!133 = !{!"_ZTSSt15__uniq_ptr_implI23StateEstimatorContainerIfESt14default_deleteIS1_EE", !134, i64 0}
!134 = !{!"_ZTSSt5tupleIJP23StateEstimatorContainerIfESt14default_deleteIS1_EEE", !135, i64 0}
!135 = !{!"_ZTSSt11_Tuple_implILm0EJP23StateEstimatorContainerIfESt14default_deleteIS1_EEE", !136, i64 0}
!136 = !{!"_ZTSSt10_Head_baseILm0EP23StateEstimatorContainerIfELb0EE", !6, i64 0}
!137 = !{!"_ZTS7LegData", !7, i64 0, !7, i64 16, !7, i64 32, !7, i64 48, !7, i64 64, !7, i64 80}
!138 = !{!"_ZTS10LegCommand", !7, i64 0, !7, i64 16, !7, i64 32, !7, i64 48, !7, i64 64, !7, i64 80, !7, i64 96, !7, i64 112, !7, i64 128, !7, i64 144, !7, i64 160, !7, i64 176, !7, i64 192, !7, i64 208, !7, i64 224, !7, i64 240}
!139 = !{!"_ZTS14ControlFSMDataIfE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!140 = !{!"_ZTS13VectorNavData", !29, i64 0, !29, i64 12, !17, i64 32, !29, i64 48, !29, i64 60}
!141 = !{!"_ZTSSt10unique_ptrI12CheaterStateIdESt14default_deleteIS1_EE", !142, i64 0}
!142 = !{!"_ZTSSt15__uniq_ptr_dataI12CheaterStateIdESt14default_deleteIS1_ELb1ELb1EE", !143, i64 0}
!143 = !{!"_ZTSSt15__uniq_ptr_implI12CheaterStateIdESt14default_deleteIS1_EE", !144, i64 0}
!144 = !{!"_ZTSSt5tupleIJP12CheaterStateIdESt14default_deleteIS1_EEE", !145, i64 0}
!145 = !{!"_ZTSSt11_Tuple_implILm0EJP12CheaterStateIdESt14default_deleteIS1_EEE", !146, i64 0}
!146 = !{!"_ZTSSt10_Head_baseILm0EP12CheaterStateIdELb0EE", !6, i64 0}
!147 = !{!"_ZTS13StateEstimateIfE", !17, i64 0, !29, i64 16, !29, i64 28, !17, i64 48, !29, i64 64, !148, i64 76, !29, i64 112, !29, i64 124, !29, i64 136, !29, i64 148, !29, i64 160}
!148 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEE", !149, i64 0}
!149 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEE", !150, i64 0}
!150 = !{!"_ZTSN5Eigen12DenseStorageIfLi9ELi3ELi3ELi0EEE", !151, i64 0}
!151 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi9ELi0ELi0EEE", !7, i64 0}
!152 = !{!"_ZTSSt10unique_ptrI22RobotControlParametersSt14default_deleteIS0_EE", !153, i64 0}
!153 = !{!"_ZTSSt15__uniq_ptr_dataI22RobotControlParametersSt14default_deleteIS0_ELb1ELb1EE", !154, i64 0}
!154 = !{!"_ZTSSt15__uniq_ptr_implI22RobotControlParametersSt14default_deleteIS0_EE", !155, i64 0}
!155 = !{!"_ZTSSt5tupleIJP22RobotControlParametersSt14default_deleteIS0_EEE", !156, i64 0}
!156 = !{!"_ZTSSt11_Tuple_implILm0EJP22RobotControlParametersSt14default_deleteIS0_EEE", !157, i64 0}
!157 = !{!"_ZTSSt10_Head_baseILm0EP22RobotControlParametersLb0EE", !6, i64 0}
!158 = !{!"_ZTSSt10unique_ptrI19DesiredStateCommandIfESt14default_deleteIS1_EE", !159, i64 0}
!159 = !{!"_ZTSSt15__uniq_ptr_dataI19DesiredStateCommandIfESt14default_deleteIS1_ELb1ELb1EE", !160, i64 0}
!160 = !{!"_ZTSSt15__uniq_ptr_implI19DesiredStateCommandIfESt14default_deleteIS1_EE", !161, i64 0}
!161 = !{!"_ZTSSt5tupleIJP19DesiredStateCommandIfESt14default_deleteIS1_EEE", !162, i64 0}
!162 = !{!"_ZTSSt11_Tuple_implILm0EJP19DesiredStateCommandIfESt14default_deleteIS1_EEE", !163, i64 0}
!163 = !{!"_ZTSSt10_Head_baseILm0EP19DesiredStateCommandIfELb0EE", !6, i64 0}
!164 = !{!"_ZTSSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EE", !165, i64 0}
!165 = !{!"_ZTSSt15__uniq_ptr_dataI13SafetyCheckerIfESt14default_deleteIS1_ELb1ELb1EE", !166, i64 0}
!166 = !{!"_ZTSSt15__uniq_ptr_implI13SafetyCheckerIfESt14default_deleteIS1_EE", !167, i64 0}
!167 = !{!"_ZTSSt5tupleIJP13SafetyCheckerIfESt14default_deleteIS1_EEE", !168, i64 0}
!168 = !{!"_ZTSSt11_Tuple_implILm0EJP13SafetyCheckerIfESt14default_deleteIS1_EEE", !169, i64 0}
!169 = !{!"_ZTSSt10_Head_baseILm0EP13SafetyCheckerIfELb0EE", !6, i64 0}
!170 = !{!10, !11, i64 0}
!171 = !{!10, !11, i64 4}
!172 = !{i8 0, i8 2}
!173 = !{}
!174 = !{!11, !11, i64 0}
!175 = !{!23, !23, i64 0}
!176 = !{!177, !177, i64 0}
!177 = !{!"double", !7, i64 0}
!178 = distinct !{!178, !179}
!179 = !{!"llvm.loop.mustprogress"}
!180 = distinct !{!180, !179}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.6 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [38 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11GaitCtrller7PreWorkEPdS0_(ptr noundef nonnull align 16 dereferenceable(3816), ptr noundef, ptr noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11GaitCtrller16TorqueCalculatorEPdS0_S0_(ptr noundef nonnull align 16 dereferenceable(3816) %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef writeonly %3) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::vector", align 8
  %6 = alloca %"class.std::vector", align 8
  tail call void @_ZN11GaitCtrller7PreWorkEPdS0_(ptr noundef nonnull align 16 dereferenceable(3816) %0, ptr noundef %1, ptr noundef %2)
  %7 = getelementptr inbounds i8, ptr %0, i64 3112
  %8 = tail call noundef ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  tail call void @_ZN13LegControllerIfE11zeroCommandEv(ptr noundef nonnull align 8 dereferenceable(1408) %8)
  %9 = tail call noundef ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  tail call void @_ZN13LegControllerIfE10setEnabledEb(ptr noundef nonnull align 8 dereferenceable(1408) %9, i1 noundef zeroext true)
  %10 = tail call noundef ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  tail call void @_ZN13LegControllerIfE20setMaxTorqueCheetah3Ef(ptr noundef nonnull align 8 dereferenceable(1408) %10, float noundef 2.085000e+02)
  %11 = getelementptr inbounds i8, ptr %0, i64 3800
  %12 = tail call noundef ptr @_ZNKSt10unique_ptrI19DesiredStateCommandIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  %13 = getelementptr inbounds i8, ptr %0, i64 16
  call void @_ZNSt6vectorIdSaIdEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %13)
  invoke void @_ZN19DesiredStateCommandIfE22convertToStateCommandsESt6vectorIdSaIdEE(ptr noundef nonnull align 16 dereferenceable(1252) %12, ptr noundef nonnull %5)
          to label %14 unwind label %20

14:                                               ; preds = %4
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #5
  %15 = getelementptr inbounds i8, ptr %0, i64 3808
  %16 = call noundef ptr @_ZNKSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #5
  %17 = getelementptr inbounds i8, ptr %0, i64 3120
  %18 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNKSt10unique_ptrI23StateEstimatorContainerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %19 = call noundef zeroext i1 @_ZN13SafetyCheckerIfE20checkSafeOrientationER23StateEstimatorContainerIfE(ptr noundef nonnull align 1 dereferenceable(1) %16, ptr noundef nonnull align 16 dereferenceable(96) %18)
  br i1 %19, label %22, label %.sink.split

20:                                               ; preds = %4
  %21 = landingpad { ptr, i32 }
          cleanup
  br label %104

22:                                               ; preds = %14
  %23 = call noundef ptr @_ZNKSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #5
  %24 = getelementptr inbounds i8, ptr %0, i64 64
  %25 = call noundef nonnull align 8 dereferenceable(1408) ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  %26 = call noundef zeroext i1 @_ZN13SafetyCheckerIfE13checkPDesFootER9QuadrupedIfER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1) %23, ptr noundef nonnull align 16 dereferenceable(1160) %24, ptr noundef nonnull align 8 dereferenceable(1408) %25)
  br i1 %26, label %27, label %.sink.split

27:                                               ; preds = %22
  %28 = call noundef ptr @_ZNKSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #5
  %29 = call noundef nonnull align 8 dereferenceable(1408) ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  %30 = call noundef zeroext i1 @_ZN13SafetyCheckerIfE21checkForceFeedForwardER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1) %28, ptr noundef nonnull align 8 dereferenceable(1408) %29)
  br i1 %30, label %31, label %.sink.split

31:                                               ; preds = %27
  %32 = call noundef ptr @_ZNKSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #5
  %33 = call noundef nonnull align 8 dereferenceable(1408) ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  %34 = call noundef zeroext i1 @_ZN13SafetyCheckerIfE15checkJointLimitER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1) %32, ptr noundef nonnull align 8 dereferenceable(1408) %33)
  br i1 %34, label %38, label %.sink.split

.sink.split:                                      ; preds = %31, %27, %22, %14
  %.str.7.sink = phi ptr [ @.str.6, %14 ], [ @.str.7, %22 ], [ @.str.8, %27 ], [ @.str.9, %31 ]
  %35 = getelementptr inbounds i8, ptr %0, i64 8
  store i8 0, ptr %35, align 8, !tbaa !5
  %36 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %.str.7.sink)
  %37 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %38

38:                                               ; preds = %.sink.split, %31
  %39 = getelementptr inbounds i8, ptr %0, i64 3104
  %40 = call noundef ptr @_ZNKSt10unique_ptrI19ConvexMPCLocomotionSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #5
  %41 = getelementptr inbounds i8, ptr %0, i64 64
  %42 = call noundef nonnull align 8 dereferenceable(1408) ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  %43 = call noundef nonnull align 16 dereferenceable(96) ptr @_ZNKSt10unique_ptrI23StateEstimatorContainerIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %44 = call noundef nonnull align 16 dereferenceable(1252) ptr @_ZNKSt10unique_ptrI19DesiredStateCommandIfESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  call void @_ZNSt6vectorIdSaIdEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %13)
  %45 = load i32, ptr %0, align 16, !tbaa !169
  %46 = getelementptr inbounds i8, ptr %0, i64 4
  %47 = load i32, ptr %46, align 4, !tbaa !170
  invoke void @_ZN19ConvexMPCLocomotion3runIfEEvR9QuadrupedIT_ER13LegControllerIS2_ER23StateEstimatorContainerIfER19DesiredStateCommandIS2_ESt6vectorIdSaIdEEii(ptr noundef nonnull align 16 dereferenceable(7184) %40, ptr noundef nonnull align 16 dereferenceable(1160) %41, ptr noundef nonnull align 8 dereferenceable(1408) %42, ptr noundef nonnull align 16 dereferenceable(96) %43, ptr noundef nonnull align 16 dereferenceable(1252) %44, ptr noundef nonnull %6, i32 noundef %45, i32 noundef %47)
          to label %48 unwind label %102

48:                                               ; preds = %38
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #5
  %49 = call noundef ptr @_ZNKSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  %50 = getelementptr inbounds i8, ptr %0, i64 3224
  %51 = getelementptr inbounds i8, ptr %0, i64 48
  call void @_ZN13LegControllerIfE13updateCommandEP10LegCommandRN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE(ptr noundef nonnull align 8 dereferenceable(1408) %49, ptr noundef nonnull %50, ptr noundef nonnull align 16 dereferenceable(16) %51)
  %52 = getelementptr inbounds i8, ptr %0, i64 8
  %53 = load i8, ptr %52, align 8, !tbaa !5, !range !171, !noundef !172
  %54 = trunc nuw i8 %53 to i1
  br i1 %54, label %.preheader, label %.preheader27.preheader

.preheader27.preheader:                           ; preds = %48
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %3, i8 0, i64 96, i1 false), !tbaa !173
  br label %.loopexit

.preheader:                                       ; preds = %48
  %55 = getelementptr inbounds i8, ptr %0, i64 3416
  %56 = getelementptr inbounds i8, ptr %0, i64 3432
  %57 = getelementptr inbounds i8, ptr %0, i64 3448
  %58 = load <4 x float>, ptr %55, align 8
  %59 = shufflevector <4 x float> %58, <4 x float> poison, <2 x i32> <i32 0, i32 poison>
  %60 = load float, ptr %56, align 8, !tbaa !175
  %61 = insertelement <2 x float> %59, float %60, i64 1
  %62 = fpext <2 x float> %61 to <2 x double>
  store <2 x double> %62, ptr %3, align 8, !tbaa !173
  %63 = load <4 x float>, ptr %57, align 8
  %64 = shufflevector <4 x float> %63, <4 x float> poison, <2 x i32> <i32 0, i32 poison>
  %65 = getelementptr inbounds i8, ptr %3, i64 16
  %66 = getelementptr inbounds i8, ptr %0, i64 3420
  %67 = load float, ptr %66, align 4, !tbaa !175
  %68 = insertelement <2 x float> %64, float %67, i64 1
  %69 = fpext <2 x float> %68 to <2 x double>
  store <2 x double> %69, ptr %65, align 8, !tbaa !173
  %70 = getelementptr inbounds i8, ptr %0, i64 3436
  %71 = load <4 x float>, ptr %70, align 4
  %72 = shufflevector <4 x float> %71, <4 x float> poison, <2 x i32> <i32 0, i32 poison>
  %73 = getelementptr inbounds i8, ptr %3, i64 32
  %74 = getelementptr inbounds i8, ptr %0, i64 3452
  %75 = load float, ptr %74, align 4, !tbaa !175
  %76 = insertelement <2 x float> %72, float %75, i64 1
  %77 = fpext <2 x float> %76 to <2 x double>
  store <2 x double> %77, ptr %73, align 8, !tbaa !173
  %78 = getelementptr inbounds i8, ptr %0, i64 3424
  %79 = load <4 x float>, ptr %78, align 16
  %80 = shufflevector <4 x float> %79, <4 x float> poison, <2 x i32> <i32 0, i32 poison>
  %81 = getelementptr inbounds i8, ptr %3, i64 48
  %82 = getelementptr inbounds i8, ptr %0, i64 3440
  %83 = load float, ptr %82, align 16, !tbaa !175
  %84 = insertelement <2 x float> %80, float %83, i64 1
  %85 = fpext <2 x float> %84 to <2 x double>
  store <2 x double> %85, ptr %81, align 8, !tbaa !173
  %86 = getelementptr inbounds i8, ptr %0, i64 3456
  %87 = load <4 x float>, ptr %86, align 16
  %88 = shufflevector <4 x float> %87, <4 x float> poison, <2 x i32> <i32 0, i32 poison>
  %89 = getelementptr inbounds i8, ptr %3, i64 64
  %90 = getelementptr inbounds i8, ptr %0, i64 3428
  %91 = load float, ptr %90, align 4, !tbaa !175
  %92 = insertelement <2 x float> %88, float %91, i64 1
  %93 = fpext <2 x float> %92 to <2 x double>
  store <2 x double> %93, ptr %89, align 8, !tbaa !173
  %94 = getelementptr inbounds i8, ptr %0, i64 3444
  %95 = load <4 x float>, ptr %94, align 4
  %96 = shufflevector <4 x float> %95, <4 x float> poison, <2 x i32> <i32 0, i32 poison>
  %97 = getelementptr inbounds i8, ptr %3, i64 80
  %98 = getelementptr inbounds i8, ptr %0, i64 3460
  %99 = load float, ptr %98, align 4, !tbaa !175
  %100 = insertelement <2 x float> %96, float %99, i64 1
  %101 = fpext <2 x float> %100 to <2 x double>
  store <2 x double> %101, ptr %97, align 8, !tbaa !173
  br label %.loopexit

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

.loopexit:                                        ; preds = %.preheader27.preheader, %.preheader
  ret void

104:                                              ; preds = %102, %20
  %.sink = phi ptr [ %6, %102 ], [ %5, %20 ]
  %.pn = phi { ptr, i32 } [ %103, %102 ], [ %21, %20 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.sink) #5
  resume { ptr, i32 } %.pn
}

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #2

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

declare void @_ZN13LegControllerIfE11zeroCommandEv(ptr noundef nonnull align 8 dereferenceable(1408)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN13LegControllerIfE10setEnabledEb(ptr noundef nonnull align 8 dereferenceable(1408), i1 noundef zeroext) local_unnamed_addr #1 align 2

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

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

declare void @_ZN19DesiredStateCommandIfE22convertToStateCommandsESt6vectorIdSaIdEE(ptr noundef nonnull align 16 dereferenceable(1252), ptr noundef) local_unnamed_addr #3

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

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

declare noundef zeroext i1 @_ZN13SafetyCheckerIfE20checkSafeOrientationER23StateEstimatorContainerIfE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(96)) local_unnamed_addr #3

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

declare noundef zeroext i1 @_ZN13SafetyCheckerIfE13checkPDesFootER9QuadrupedIfER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(1160), ptr noundef nonnull align 8 dereferenceable(1408)) local_unnamed_addr #3

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

declare noundef zeroext i1 @_ZN13SafetyCheckerIfE21checkForceFeedForwardER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(1408)) local_unnamed_addr #3

declare noundef zeroext i1 @_ZN13SafetyCheckerIfE15checkJointLimitER13LegControllerIfE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(1408)) local_unnamed_addr #3

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

declare void @_ZN19ConvexMPCLocomotion3runIfEEvR9QuadrupedIT_ER13LegControllerIS2_ER23StateEstimatorContainerIfER19DesiredStateCommandIS2_ESt6vectorIdSaIdEEii(ptr noundef nonnull align 16 dereferenceable(7184), ptr noundef nonnull align 16 dereferenceable(1160), ptr noundef nonnull align 8 dereferenceable(1408), ptr noundef nonnull align 16 dereferenceable(96), ptr noundef nonnull align 16 dereferenceable(1252), ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

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

declare void @_ZN13LegControllerIfE13updateCommandEP10LegCommandRN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE(ptr noundef nonnull align 8 dereferenceable(1408), ptr noundef, ptr noundef nonnull align 16 dereferenceable(16)) local_unnamed_addr #3

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

attributes #0 = { 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 #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { "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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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, !10, i64 8}
!6 = !{!"_ZTS11GaitCtrller", !7, i64 0, !7, i64 4, !10, i64 8, !11, i64 16, !16, i64 48, !20, i64 64, !32, i64 1232, !118, i64 3104, !124, i64 3112, !130, i64 3120, !136, i64 3128, !137, i64 3224, !138, i64 3480, !139, i64 3520, !140, i64 3600, !146, i64 3616, !151, i64 3792, !157, i64 3800, !163, i64 3808}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!"_ZTSSt6vectorIdSaIdEE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!15 = !{!"any pointer", !8, i64 0}
!16 = !{!"_ZTSN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE", !17, i64 0}
!17 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi4ELi1ELi0ELi4ELi1EEEEE", !18, i64 0}
!18 = !{!"_ZTSN5Eigen12DenseStorageIfLi4ELi4ELi1ELi0EEE", !19, i64 0}
!19 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi4ELi0ELi16EEE", !8, i64 0}
!20 = !{!"_ZTS9QuadrupedIfE", !21, i64 0, !22, i64 4, !22, i64 8, !22, i64 12, !22, i64 16, !22, i64 20, !22, i64 24, !22, i64 28, !22, i64 32, !22, i64 36, !22, i64 40, !22, i64 44, !22, i64 48, !22, i64 52, !22, i64 56, !22, i64 60, !22, i64 64, !22, i64 68, !22, i64 72, !23, i64 80, !23, i64 224, !23, i64 368, !23, i64 512, !23, i64 656, !23, i64 800, !23, i64 944, !28, i64 1088, !28, i64 1100, !28, i64 1112, !28, i64 1124, !28, i64 1136, !28, i64 1148}
!21 = !{!"_ZTS9RobotType", !8, i64 0}
!22 = !{!"float", !8, i64 0}
!23 = !{!"_ZTS14SpatialInertiaIfE", !24, i64 0}
!24 = !{!"_ZTSN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEE", !25, i64 0}
!25 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi6ELi6ELi0ELi6ELi6EEEEE", !26, i64 0}
!26 = !{!"_ZTSN5Eigen12DenseStorageIfLi36ELi6ELi6ELi0EEE", !27, i64 0}
!27 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi36ELi0ELi16EEE", !8, i64 0}
!28 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEE", !29, i64 0}
!29 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEEEE", !30, i64 0}
!30 = !{!"_ZTSN5Eigen12DenseStorageIfLi3ELi3ELi1ELi0EEE", !31, i64 0}
!31 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi3ELi0ELi0EEE", !8, i64 0}
!32 = !{!"_ZTS17FloatingBaseModelIfE", !33, i64 0, !28, i64 8, !34, i64 24, !38, i64 48, !38, i64 72, !38, i64 96, !42, i64 120, !46, i64 144, !50, i64 168, !50, i64 192, !54, i64 216, !54, i64 240, !58, i64 264, !33, i64 288, !62, i64 296, !66, i64 320, !62, i64 344, !66, i64 368, !66, i64 392, !70, i64 416, !76, i64 464, !84, i64 560, !85, i64 616, !85, i64 640, !85, i64 664, !85, i64 688, !85, i64 712, !85, i64 736, !85, i64 760, !85, i64 784, !85, i64 808, !85, i64 832, !85, i64 856, !85, i64 880, !85, i64 904, !85, i64 928, !85, i64 952, !85, i64 976, !85, i64 1000, !85, i64 1024, !85, i64 1048, !85, i64 1072, !85, i64 1096, !85, i64 1120, !54, i64 1144, !50, i64 1168, !50, i64 1192, !50, i64 1216, !50, i64 1240, !50, i64 1264, !89, i64 1288, !89, i64 1312, !81, i64 1336, !81, i64 1352, !92, i64 1368, !85, i64 1392, !96, i64 1416, !100, i64 1440, !10, i64 1464, !10, i64 1465, !10, i64 1466, !10, i64 1467, !10, i64 1468, !10, i64 1469, !10, i64 1470, !89, i64 1472, !89, i64 1496, !104, i64 1520}
!33 = !{!"long", !8, i64 0}
!34 = !{!"_ZTSSt6vectorIiSaIiEE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!38 = !{!"_ZTSSt6vectorIfSaIfEE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!42 = !{!"_ZTSSt6vectorIN7spatial9JointTypeESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt12_Vector_baseIN7spatial9JointTypeESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN7spatial9JointTypeESaIS1_EE12_Vector_implE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN7spatial9JointTypeESaIS1_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!46 = !{!"_ZTSSt6vectorIN3ori14CoordinateAxisESaIS1_EE", !47, i64 0}
!47 = !{!"_ZTSSt12_Vector_baseIN3ori14CoordinateAxisESaIS1_EE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIN3ori14CoordinateAxisESaIS1_EE12_Vector_implE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseIN3ori14CoordinateAxisESaIS1_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!50 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEENS0_17aligned_allocatorIS2_EEE", !51, i64 0}
!51 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEENS0_17aligned_allocatorIS2_EEE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi6ELi0ELi6ELi6EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!54 = !{!"_ZTSSt6vectorI14SpatialInertiaIfEN5Eigen17aligned_allocatorIS1_EEE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseI14SpatialInertiaIfEN5Eigen17aligned_allocatorIS1_EEE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseI14SpatialInertiaIfEN5Eigen17aligned_allocatorIS1_EEE12_Vector_implE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseI14SpatialInertiaIfEN5Eigen17aligned_allocatorIS1_EEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!58 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !59, i64 0}
!59 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!62 = !{!"_ZTSSt6vectorImSaImEE", !63, i64 0}
!63 = !{!"_ZTSSt12_Vector_baseImSaImEE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseImSaImEE12_Vector_implE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseImSaImEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!66 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEESaIS2_EE", !67, i64 0}
!67 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEESaIS2_EE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEESaIS2_EE12_Vector_implE", !69, i64 0}
!69 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEESaIS2_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!70 = !{!"_ZTSSt6vectorIbSaIbEE", !71, i64 0}
!71 = !{!"_ZTSSt13_Bvector_baseISaIbEE", !72, i64 0}
!72 = !{!"_ZTSNSt13_Bvector_baseISaIbEE13_Bvector_implE", !73, i64 0}
!73 = !{!"_ZTSNSt13_Bvector_baseISaIbEE18_Bvector_impl_dataE", !74, i64 0, !74, i64 16, !15, i64 32}
!74 = !{!"_ZTSSt13_Bit_iterator", !75, i64 0}
!75 = !{!"_ZTSSt18_Bit_iterator_base", !15, i64 0, !7, i64 8}
!76 = !{!"_ZTS12FBModelStateIfE", !16, i64 0, !28, i64 16, !77, i64 28, !81, i64 56, !81, i64 72}
!77 = !{!"_ZTSN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEE", !78, i64 0}
!78 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi6ELi1ELi0ELi6ELi1EEEEE", !79, i64 0}
!79 = !{!"_ZTSN5Eigen12DenseStorageIfLi6ELi6ELi1ELi0EEE", !80, i64 0}
!80 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi6ELi0ELi0EEE", !8, i64 0}
!81 = !{!"_ZTSN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEE", !82, i64 0}
!82 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEEE", !83, i64 0}
!83 = !{!"_ZTSN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EEE", !15, i64 0, !33, i64 8}
!84 = !{!"_ZTS22FBModelStateDerivativeIfE", !28, i64 0, !77, i64 12, !81, i64 40}
!85 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEENS0_17aligned_allocatorIS2_EEE", !86, i64 0}
!86 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEENS0_17aligned_allocatorIS2_EEE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELi1ELi0ELi6ELi1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!89 = !{!"_ZTSN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEE", !90, i64 0}
!90 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEE", !91, i64 0}
!91 = !{!"_ZTSN5Eigen12DenseStorageIfLin1ELin1ELin1ELi0EEE", !15, i64 0, !33, i64 8, !33, i64 16}
!92 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi6ELin1ELi0ELi6ELin1EEENS0_17aligned_allocatorIS2_EEE", !93, i64 0}
!93 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi6ELin1ELi0ELi6ELin1EEENS0_17aligned_allocatorIS2_EEE", !94, i64 0}
!94 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELin1ELi0ELi6ELin1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !95, i64 0}
!95 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi6ELin1ELi0ELi6ELin1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!96 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi3ELin1ELi0ELi3ELin1EEENS0_17aligned_allocatorIS2_EEE", !97, i64 0}
!97 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi3ELin1ELi0ELi3ELin1EEENS0_17aligned_allocatorIS2_EEE", !98, i64 0}
!98 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELin1ELi0ELi3ELin1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !99, i64 0}
!99 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELin1ELi0ELi3ELin1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!100 = !{!"_ZTSSt6vectorIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEENS0_17aligned_allocatorIS2_EEE", !101, i64 0}
!101 = !{!"_ZTSSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEENS0_17aligned_allocatorIS2_EEE", !102, i64 0}
!102 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEENS0_17aligned_allocatorIS2_EEE12_Vector_implE", !103, i64 0}
!103 = !{!"_ZTSNSt12_Vector_baseIN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEENS0_17aligned_allocatorIS2_EEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!104 = !{!"_ZTSN5Eigen19ColPivHouseholderQRINS_6MatrixIfLi6ELi6ELi0ELi6ELi6EEEEE", !24, i64 0, !77, i64 144, !105, i64 168, !110, i64 192, !114, i64 240, !114, i64 264, !114, i64 288, !10, i64 312, !10, i64 313, !22, i64 316, !22, i64 320, !33, i64 328, !33, i64 336}
!105 = !{!"_ZTSN5Eigen17PermutationMatrixILi6ELi6EiEE", !106, i64 0}
!106 = !{!"_ZTSN5Eigen6MatrixIiLi6ELi1ELi0ELi6ELi1EEE", !107, i64 0}
!107 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIiLi6ELi1ELi0ELi6ELi1EEEEE", !108, i64 0}
!108 = !{!"_ZTSN5Eigen12DenseStorageIiLi6ELi6ELi1ELi0EEE", !109, i64 0}
!109 = !{!"_ZTSN5Eigen8internal11plain_arrayIiLi6ELi0ELi0EEE", !8, i64 0}
!110 = !{!"_ZTSN5Eigen6MatrixIlLi1ELi6ELi1ELi1ELi6EEE", !111, i64 0}
!111 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIlLi1ELi6ELi1ELi1ELi6EEEEE", !112, i64 0}
!112 = !{!"_ZTSN5Eigen12DenseStorageIlLi6ELi1ELi6ELi1EEE", !113, i64 0}
!113 = !{!"_ZTSN5Eigen8internal11plain_arrayIlLi6ELi1ELi16EEE", !8, i64 0}
!114 = !{!"_ZTSN5Eigen6MatrixIfLi1ELi6ELi1ELi1ELi6EEE", !115, i64 0}
!115 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi1ELi6ELi1ELi1ELi6EEEEE", !116, i64 0}
!116 = !{!"_ZTSN5Eigen12DenseStorageIfLi6ELi1ELi6ELi1EEE", !117, i64 0}
!117 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi6ELi1ELi0EEE", !8, i64 0}
!118 = !{!"_ZTSSt10unique_ptrI19ConvexMPCLocomotionSt14default_deleteIS0_EE", !119, i64 0}
!119 = !{!"_ZTSSt15__uniq_ptr_dataI19ConvexMPCLocomotionSt14default_deleteIS0_ELb1ELb1EE", !120, i64 0}
!120 = !{!"_ZTSSt15__uniq_ptr_implI19ConvexMPCLocomotionSt14default_deleteIS0_EE", !121, i64 0}
!121 = !{!"_ZTSSt5tupleIJP19ConvexMPCLocomotionSt14default_deleteIS0_EEE", !122, i64 0}
!122 = !{!"_ZTSSt11_Tuple_implILm0EJP19ConvexMPCLocomotionSt14default_deleteIS0_EEE", !123, i64 0}
!123 = !{!"_ZTSSt10_Head_baseILm0EP19ConvexMPCLocomotionLb0EE", !15, i64 0}
!124 = !{!"_ZTSSt10unique_ptrI13LegControllerIfESt14default_deleteIS1_EE", !125, i64 0}
!125 = !{!"_ZTSSt15__uniq_ptr_dataI13LegControllerIfESt14default_deleteIS1_ELb1ELb1EE", !126, i64 0}
!126 = !{!"_ZTSSt15__uniq_ptr_implI13LegControllerIfESt14default_deleteIS1_EE", !127, i64 0}
!127 = !{!"_ZTSSt5tupleIJP13LegControllerIfESt14default_deleteIS1_EEE", !128, i64 0}
!128 = !{!"_ZTSSt11_Tuple_implILm0EJP13LegControllerIfESt14default_deleteIS1_EEE", !129, i64 0}
!129 = !{!"_ZTSSt10_Head_baseILm0EP13LegControllerIfELb0EE", !15, i64 0}
!130 = !{!"_ZTSSt10unique_ptrI23StateEstimatorContainerIfESt14default_deleteIS1_EE", !131, i64 0}
!131 = !{!"_ZTSSt15__uniq_ptr_dataI23StateEstimatorContainerIfESt14default_deleteIS1_ELb1ELb1EE", !132, i64 0}
!132 = !{!"_ZTSSt15__uniq_ptr_implI23StateEstimatorContainerIfESt14default_deleteIS1_EE", !133, i64 0}
!133 = !{!"_ZTSSt5tupleIJP23StateEstimatorContainerIfESt14default_deleteIS1_EEE", !134, i64 0}
!134 = !{!"_ZTSSt11_Tuple_implILm0EJP23StateEstimatorContainerIfESt14default_deleteIS1_EEE", !135, i64 0}
!135 = !{!"_ZTSSt10_Head_baseILm0EP23StateEstimatorContainerIfELb0EE", !15, i64 0}
!136 = !{!"_ZTS7LegData", !8, i64 0, !8, i64 16, !8, i64 32, !8, i64 48, !8, i64 64, !8, i64 80}
!137 = !{!"_ZTS10LegCommand", !8, i64 0, !8, i64 16, !8, i64 32, !8, i64 48, !8, i64 64, !8, i64 80, !8, i64 96, !8, i64 112, !8, i64 128, !8, i64 144, !8, i64 160, !8, i64 176, !8, i64 192, !8, i64 208, !8, i64 224, !8, i64 240}
!138 = !{!"_ZTS14ControlFSMDataIfE", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24}
!139 = !{!"_ZTS13VectorNavData", !28, i64 0, !28, i64 12, !16, i64 32, !28, i64 48, !28, i64 60}
!140 = !{!"_ZTSSt10unique_ptrI12CheaterStateIdESt14default_deleteIS1_EE", !141, i64 0}
!141 = !{!"_ZTSSt15__uniq_ptr_dataI12CheaterStateIdESt14default_deleteIS1_ELb1ELb1EE", !142, i64 0}
!142 = !{!"_ZTSSt15__uniq_ptr_implI12CheaterStateIdESt14default_deleteIS1_EE", !143, i64 0}
!143 = !{!"_ZTSSt5tupleIJP12CheaterStateIdESt14default_deleteIS1_EEE", !144, i64 0}
!144 = !{!"_ZTSSt11_Tuple_implILm0EJP12CheaterStateIdESt14default_deleteIS1_EEE", !145, i64 0}
!145 = !{!"_ZTSSt10_Head_baseILm0EP12CheaterStateIdELb0EE", !15, i64 0}
!146 = !{!"_ZTS13StateEstimateIfE", !16, i64 0, !28, i64 16, !28, i64 28, !16, i64 48, !28, i64 64, !147, i64 76, !28, i64 112, !28, i64 124, !28, i64 136, !28, i64 148, !28, i64 160}
!147 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEE", !148, i64 0}
!148 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEE", !149, i64 0}
!149 = !{!"_ZTSN5Eigen12DenseStorageIfLi9ELi3ELi3ELi0EEE", !150, i64 0}
!150 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi9ELi0ELi0EEE", !8, i64 0}
!151 = !{!"_ZTSSt10unique_ptrI22RobotControlParametersSt14default_deleteIS0_EE", !152, i64 0}
!152 = !{!"_ZTSSt15__uniq_ptr_dataI22RobotControlParametersSt14default_deleteIS0_ELb1ELb1EE", !153, i64 0}
!153 = !{!"_ZTSSt15__uniq_ptr_implI22RobotControlParametersSt14default_deleteIS0_EE", !154, i64 0}
!154 = !{!"_ZTSSt5tupleIJP22RobotControlParametersSt14default_deleteIS0_EEE", !155, i64 0}
!155 = !{!"_ZTSSt11_Tuple_implILm0EJP22RobotControlParametersSt14default_deleteIS0_EEE", !156, i64 0}
!156 = !{!"_ZTSSt10_Head_baseILm0EP22RobotControlParametersLb0EE", !15, i64 0}
!157 = !{!"_ZTSSt10unique_ptrI19DesiredStateCommandIfESt14default_deleteIS1_EE", !158, i64 0}
!158 = !{!"_ZTSSt15__uniq_ptr_dataI19DesiredStateCommandIfESt14default_deleteIS1_ELb1ELb1EE", !159, i64 0}
!159 = !{!"_ZTSSt15__uniq_ptr_implI19DesiredStateCommandIfESt14default_deleteIS1_EE", !160, i64 0}
!160 = !{!"_ZTSSt5tupleIJP19DesiredStateCommandIfESt14default_deleteIS1_EEE", !161, i64 0}
!161 = !{!"_ZTSSt11_Tuple_implILm0EJP19DesiredStateCommandIfESt14default_deleteIS1_EEE", !162, i64 0}
!162 = !{!"_ZTSSt10_Head_baseILm0EP19DesiredStateCommandIfELb0EE", !15, i64 0}
!163 = !{!"_ZTSSt10unique_ptrI13SafetyCheckerIfESt14default_deleteIS1_EE", !164, i64 0}
!164 = !{!"_ZTSSt15__uniq_ptr_dataI13SafetyCheckerIfESt14default_deleteIS1_ELb1ELb1EE", !165, i64 0}
!165 = !{!"_ZTSSt15__uniq_ptr_implI13SafetyCheckerIfESt14default_deleteIS1_EE", !166, i64 0}
!166 = !{!"_ZTSSt5tupleIJP13SafetyCheckerIfESt14default_deleteIS1_EEE", !167, i64 0}
!167 = !{!"_ZTSSt11_Tuple_implILm0EJP13SafetyCheckerIfESt14default_deleteIS1_EEE", !168, i64 0}
!168 = !{!"_ZTSSt10_Head_baseILm0EP13SafetyCheckerIfELb0EE", !15, i64 0}
!169 = !{!6, !7, i64 0}
!170 = !{!6, !7, i64 4}
!171 = !{i8 0, i8 2}
!172 = !{}
!173 = !{!174, !174, i64 0}
!174 = !{!"double", !8, i64 0}
!175 = !{!22, !22, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass