; LLVM IR from Derek-TH-Wang/quadruped_ctrl :: src/MPC_Ctrl/SolverMPC.ll (Z9solve_mpcP13update_data_tP13problem_setup)

; 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.RobotState = type { %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", [12 x i8], %"class.Eigen::Matrix.3", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", [4 x i8], %"class.Eigen::Quaternion", float, float, [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 { [3 x float] }
%"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 { [12 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 { [9 x float] }
%"class.Eigen::Quaternion" = type { %"class.Eigen::Matrix.23" }
%"class.Eigen::Matrix.23" = type { %"class.Eigen::PlainObjectBase.24" }
%"class.Eigen::PlainObjectBase.24" = type { %"class.Eigen::DenseStorage.31" }
%"class.Eigen::DenseStorage.31" = type { %"struct.Eigen::internal::plain_array.32" }
%"struct.Eigen::internal::plain_array.32" = type { [4 x float] }
%"class.Eigen::Matrix.33" = type { %"class.Eigen::PlainObjectBase.34" }
%"class.Eigen::PlainObjectBase.34" = type { %"class.Eigen::DenseStorage.41" }
%"class.Eigen::DenseStorage.41" = type { ptr, i64 }
%"class.Eigen::Matrix.42" = type { %"class.Eigen::PlainObjectBase.43" }
%"class.Eigen::PlainObjectBase.43" = type { %"class.Eigen::DenseStorage.50" }
%"class.Eigen::DenseStorage.50" = type { ptr, i64, i64 }
%"class.Eigen::Matrix.81" = type { %"class.Eigen::PlainObjectBase.82" }
%"class.Eigen::PlainObjectBase.82" = type { %"class.Eigen::DenseStorage.89" }
%"class.Eigen::DenseStorage.89" = type { ptr, i64 }
%"class.Eigen::Matrix.204" = type { %"class.Eigen::PlainObjectBase.205" }
%"class.Eigen::PlainObjectBase.205" = type { %"class.Eigen::DenseStorage.212" }
%"class.Eigen::DenseStorage.212" = type { %"struct.Eigen::internal::plain_array.213" }
%"struct.Eigen::internal::plain_array.213" = type { [13 x float] }
%"class.Eigen::Matrix.61" = type { %"class.Eigen::PlainObjectBase.62" }
%"class.Eigen::PlainObjectBase.62" = type { %"class.Eigen::DenseStorage.69" }
%"class.Eigen::DenseStorage.69" = type { %"struct.Eigen::internal::plain_array.70" }
%"struct.Eigen::internal::plain_array.70" = type { [169 x float] }
%"class.Eigen::Matrix.51" = type { %"class.Eigen::PlainObjectBase.52" }
%"class.Eigen::PlainObjectBase.52" = type { %"class.Eigen::DenseStorage.59" }
%"class.Eigen::DenseStorage.59" = type { %"struct.Eigen::internal::plain_array.60" }
%"struct.Eigen::internal::plain_array.60" = type { [156 x float] }
%"class.Eigen::Block.132" = type { %"class.Eigen::BlockImpl.133" }
%"class.Eigen::BlockImpl.133" = type { %"class.Eigen::internal::BlockImpl_dense.134" }
%"class.Eigen::internal::BlockImpl_dense.134" = type { %"class.Eigen::MapBase.135", ptr, %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic", i64 }
%"class.Eigen::MapBase.135" = type { %"class.Eigen::MapBase.136" }
%"class.Eigen::MapBase.136" = type { ptr, %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic" }
%"class.Eigen::internal::variable_if_dynamic" = type { i64 }
%"struct.Eigen::CommaInitializer" = type { ptr, i64, i64, i64 }
%"class.Eigen::Product.214" = type { %"class.Eigen::Product.221", %"class.Eigen::Transpose" }
%"class.Eigen::Product.221" = type { ptr, ptr }
%"class.Eigen::Transpose" = type { ptr }
%"class.Eigen::Replicate" = type { ptr, %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic" }
%"class.Eigen::Diagonal" = type <{ ptr, [8 x i8] }>
%"class.Eigen::Matrix.238" = type { %"class.Eigen::PlainObjectBase.239" }
%"class.Eigen::PlainObjectBase.239" = type { %"class.Eigen::DenseStorage.246" }
%"class.Eigen::DenseStorage.246" = type { %"struct.Eigen::internal::plain_array.247" }
%"struct.Eigen::internal::plain_array.247" = type { [15 x float] }
%"struct.Eigen::CommaInitializer.248" = type { ptr, i64, i64, i64 }
%"class.Eigen::CwiseBinaryOp.249" = type { [8 x i8], %"class.Eigen::CwiseNullaryOp.255", %"class.Eigen::CwiseBinaryOp.260", [8 x i8] }
%"class.Eigen::CwiseNullaryOp.255" = type <{ %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic", %"struct.Eigen::internal::scalar_constant_op", [4 x i8] }>
%"struct.Eigen::internal::scalar_constant_op" = type { float }
%"class.Eigen::CwiseBinaryOp.260" = type <{ %"class.Eigen::Product.266", %"class.Eigen::CwiseBinaryOp.288", [8 x i8] }>
%"class.Eigen::Product.266" = type { %"class.Eigen::Product.273", ptr }
%"class.Eigen::Product.273" = type { %"class.Eigen::Transpose.280", ptr }
%"class.Eigen::Transpose.280" = type { ptr }
%"class.Eigen::CwiseBinaryOp.288" = type <{ [8 x i8], %"class.Eigen::CwiseNullaryOp.255", ptr, [8 x i8] }>
%"class.Eigen::Product.297" = type { %"class.Eigen::Product.304", %"class.Eigen::CwiseBinaryOp.324" }
%"class.Eigen::Product.304" = type { %"class.Eigen::CwiseBinaryOp.311", ptr }
%"class.Eigen::CwiseBinaryOp.311" = type <{ [8 x i8], %"class.Eigen::CwiseNullaryOp.317", %"class.Eigen::Transpose.280", [8 x i8] }>
%"class.Eigen::CwiseNullaryOp.317" = type <{ %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic", %"struct.Eigen::internal::scalar_constant_op", [4 x i8] }>
%"class.Eigen::CwiseBinaryOp.324" = type <{ %"class.Eigen::Product.330", ptr, [8 x i8] }>
%"class.Eigen::Product.330" = type { ptr, ptr }
%class.QpProblem = type <{ %struct.QpProblemSettings, %"class.Eigen::Matrix.338", %"class.Eigen::Matrix.338", %"class.std::vector", %"class.std::vector", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", i64, i64, i8, [7 x i8], %"class.Eigen::Matrix.338", %"class.std::vector", %class.CholeskyDenseSolver, %class.CholeskySparseSolver, %"class.Eigen::SparseMatrix", %"class.Eigen::SparseMatrix", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", ptr, ptr, ptr, ptr, %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.std::vector.357", i8, i8, [6 x i8] }>
%struct.QpProblemSettings = type { i64, double, double, double, double, double, double, double, double }
%"class.Eigen::Matrix.338" = type { %"class.Eigen::PlainObjectBase.339" }
%"class.Eigen::PlainObjectBase.339" = type { %"class.Eigen::DenseStorage.346" }
%"class.Eigen::DenseStorage.346" = type { ptr, i64, i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.CholeskyDenseSolver = type <{ %"class.Eigen::Matrix.338", ptr, ptr, %"class.Eigen::Matrix.347", ptr, i64, i8, [7 x i8] }>
%class.CholeskySparseSolver = type { %struct.SparseTriple, %struct.MatCSC, %struct.MatCSC, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.SparseTriple = type { double, i32, i32 }
%struct.MatCSC = type { i32, i32, i32, ptr, ptr, ptr }
%"class.Eigen::SparseMatrix" = type { %"class.Eigen::SparseCompressedBase", i64, i64, ptr, ptr, %"class.Eigen::internal::CompressedStorage" }
%"class.Eigen::SparseCompressedBase" = type { %"class.Eigen::SparseMatrixBase" }
%"class.Eigen::SparseMatrixBase" = type { i8 }
%"class.Eigen::internal::CompressedStorage" = type { ptr, ptr, i64, i64 }
%"class.Eigen::Matrix.347" = type { %"class.Eigen::PlainObjectBase.348" }
%"class.Eigen::PlainObjectBase.348" = type { %"class.Eigen::DenseStorage.355" }
%"class.Eigen::DenseStorage.355" = type { ptr, i64 }
%"class.std::vector.357" = type { %"struct.std::_Vector_base.358" }
%"struct.std::_Vector_base.358" = type { %"struct.std::_Vector_base<ConstraintInfo<double>, std::allocator<ConstraintInfo<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<ConstraintInfo<double>, std::allocator<ConstraintInfo<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ConstraintInfo<double>, std::allocator<ConstraintInfo<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ConstraintInfo<double>, std::allocator<ConstraintInfo<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Eigen::CwiseUnaryOp" = type <{ ptr, [8 x i8] }>
%"class.Eigen::CwiseUnaryOp.366" = type <{ ptr, [8 x i8] }>
%class.Timer = type { %struct.timespec }
%struct.timespec = type { i64, i64 }
%"class.qpOASES::QProblem" = type { %"class.qpOASES::QProblemB", i32, ptr, ptr, ptr, %"class.qpOASES::Constraints", ptr, ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.qpOASES::QProblemB" = type { ptr, i32, ptr, ptr, ptr, ptr, %"class.qpOASES::Bounds", ptr, i32, ptr, ptr, double, i32, i32, i32, i32, double, i32, ptr, double, double, i32, [4 x i8], %"class.qpOASES::Options", %"class.qpOASES::Flipper", %"struct.qpOASES::TabularOutput" }
%"class.qpOASES::Bounds" = type { %"class.qpOASES::SubjectTo", %"class.qpOASES::Indexlist", %"class.qpOASES::Indexlist" }
%"class.qpOASES::SubjectTo" = type { ptr, i32, ptr, ptr, i32, i32 }
%"class.qpOASES::Indexlist" = type <{ ptr, ptr, i32, i32, i32, i32, i32, [4 x i8] }>
%"class.qpOASES::Options" = type <{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, double, i32, [4 x i8], double, i32, [4 x i8], double, i32, [4 x i8], double, double, double, double, i32, i32, i32, i32, i32, [4 x i8] }>
%"class.qpOASES::Flipper" = type { i32, i32, %"class.qpOASES::Bounds", %"class.qpOASES::Constraints", ptr, ptr, ptr }
%"struct.qpOASES::TabularOutput" = type { i32, i32, i32, i32, i32, i32, i32, i32 }
%"class.qpOASES::Constraints" = type { %"class.qpOASES::SubjectTo", %"class.qpOASES::Indexlist", %"class.qpOASES::Indexlist" }
%struct.update_data_t = type { [3 x float], [3 x float], [4 x float], [3 x float], [12 x float], float, [12 x float], [432 x float], float, [36 x i8], [1000 x i8], i32, double, double, double, double, i32, float }
%struct.problem_setup = type { float, float, float, i32 }

@rs = external dso_local global %class.RobotState, align 16
@A_qp = external dso_local global %"class.Eigen::Matrix.33", align 8
@B_qp = external dso_local global %"class.Eigen::Matrix.42", align 8
@S = external dso_local global %"class.Eigen::Matrix.42", align 8
@X_d = external dso_local global %"class.Eigen::Matrix.81", align 8
@U_b = external dso_local global %"class.Eigen::Matrix.81", align 8
@fmat = external dso_local global %"class.Eigen::Matrix.42", align 8
@qH = external dso_local global %"class.Eigen::Matrix.42", align 8
@qg = external dso_local global %"class.Eigen::Matrix.81", align 8
@eye_12h = external dso_local global %"class.Eigen::Matrix.42", align 8
@H_qpoases = external dso_local global ptr, align 8
@g_qpoases = external dso_local global ptr, align 8
@A_qpoases = external dso_local global ptr, align 8
@lb_qpoases = external dso_local global ptr, align 8
@ub_qpoases = external dso_local global ptr, align 8
@q_soln = external dso_local global ptr, align 8
@H_red = external dso_local global ptr, align 8
@g_red = external dso_local global ptr, align 8
@A_red = external dso_local global ptr, align 8
@lb_red = external dso_local global ptr, align 8
@ub_red = external dso_local global ptr, align 8
@q_red = external dso_local global ptr, align 8
@var_elim = external dso_local global [2000 x i8], align 16
@con_elim = external dso_local global [2000 x i8], align 16
@x_0 = external dso_local global %"class.Eigen::Matrix.204", align 4
@I_world = external dso_local global %"class.Eigen::Matrix.13", align 4
@A_ct = external dso_local global %"class.Eigen::Matrix.61", align 4
@B_ct_r = external dso_local global %"class.Eigen::Matrix.51", align 16
@.str.34 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [18 x i8], align 1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_Z9near_zerof(float noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_Z8near_onef(float noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef, ptr noundef, i16 noundef signext, i16 noundef signext) #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z4c2qpN5Eigen6MatrixIfLi13ELi13ELi0ELi13ELi13EEENS0_IfLi13ELi12ELi0ELi13ELi12EEEfs(ptr noundef, ptr noundef, float noundef, i16 noundef signext) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10ct_ss_matsN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEEfNS0_IfLi3ELi4ELi0ELi3ELi4EEES1_RNS0_IfLi13ELi13ELi0ELi13ELi13EEERNS0_IfLi13ELi12ELi0ELi13ELi12EEEf(ptr noundef, float noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(676), ptr noundef nonnull align 16 dereferenceable(624), float noundef) #2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z9solve_mpcP13update_data_tP13problem_setup(ptr noundef %0, ptr noundef %1) #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.Eigen::Matrix", align 4
  %6 = alloca %"class.Eigen::Quaternion", align 16
  %7 = alloca %"struct.Eigen::CommaInitializer", align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca float, align 4
  %11 = alloca %"class.Eigen::Product.214", align 8
  %12 = alloca %"class.Eigen::Product.221", align 8
  %13 = alloca %"class.Eigen::Transpose", align 8
  %14 = alloca %"class.Eigen::Matrix.13", align 4
  %15 = alloca %"class.Eigen::Matrix.3", align 16
  %16 = alloca %"class.Eigen::Matrix.13", align 4
  %17 = alloca %"class.Eigen::Matrix.61", align 4
  %18 = alloca %"class.Eigen::Matrix.51", align 16
  %19 = alloca %"class.Eigen::Matrix.204", align 4
  %20 = alloca i8, align 1
  %21 = alloca %"class.Eigen::Replicate", align 8
  %22 = alloca %"class.Eigen::Diagonal", align 8
  %23 = alloca i16, align 2
  %24 = alloca i32, align 4
  %25 = alloca i16, align 2
  %26 = alloca i16, align 2
  %27 = alloca i16, align 2
  %28 = alloca i16, align 2
  %29 = alloca float, align 4
  %30 = alloca %"class.Eigen::Matrix.238", align 4
  %31 = alloca %"struct.Eigen::CommaInitializer.248", align 8
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca i16, align 2
  %46 = alloca %"class.Eigen::Block.132", align 8
  %47 = alloca %"class.Eigen::CwiseBinaryOp.249", align 8
  %48 = alloca i32, align 4
  %49 = alloca %"class.Eigen::CwiseBinaryOp.260", align 8
  %50 = alloca %"class.Eigen::Product.266", align 8
  %51 = alloca %"class.Eigen::Product.273", align 8
  %52 = alloca %"class.Eigen::Transpose.280", align 8
  %53 = alloca %"class.Eigen::CwiseBinaryOp.288", align 8
  %54 = alloca %"class.Eigen::Product.297", align 8
  %55 = alloca %"class.Eigen::Product.304", align 8
  %56 = alloca %"class.Eigen::CwiseBinaryOp.311", align 8
  %57 = alloca i32, align 4
  %58 = alloca %"class.Eigen::Transpose.280", align 8
  %59 = alloca %"class.Eigen::CwiseBinaryOp.324", align 8
  %60 = alloca %"class.Eigen::Product.330", align 8
  %61 = alloca %class.QpProblem, align 8
  %62 = alloca %"class.Eigen::CwiseUnaryOp", align 8
  %63 = alloca %"class.Eigen::CwiseUnaryOp", align 8
  %64 = alloca %"class.Eigen::CwiseUnaryOp.366", align 8
  %65 = alloca %"class.Eigen::CwiseUnaryOp.366", align 8
  %66 = alloca i16, align 2
  %67 = alloca %"class.Eigen::Matrix.42", align 8
  %68 = alloca %"class.Eigen::Matrix.42", align 8
  %69 = alloca %"class.Eigen::Matrix.42", align 8
  %70 = alloca %"class.Eigen::Matrix.42", align 8
  %71 = alloca i16, align 2
  %72 = alloca i16, align 2
  %73 = alloca i16, align 2
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca ptr, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca float, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca %class.Timer, align 8
  %99 = alloca %"class.qpOASES::QProblem", align 8
  %100 = alloca %"class.qpOASES::Options", align 8
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %class.QpProblem, align 8
  %105 = alloca %"class.Eigen::Matrix.338", align 8
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca %"class.Eigen::Matrix.338", align 8
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca %"class.Eigen::Matrix.347", align 8
  %113 = alloca i32, align 4
  %114 = alloca %"class.Eigen::Matrix.347", align 8
  %115 = alloca i32, align 4
  %116 = alloca %"class.Eigen::Matrix.347", align 8
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %120 = load ptr, ptr %3, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.update_data_t, ptr %120, i32 0, i32 0
  %122 = getelementptr inbounds [3 x float], ptr %121, i64 0, i64 0
  %123 = load ptr, ptr %3, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct.update_data_t, ptr %123, i32 0, i32 1
  %125 = getelementptr inbounds [3 x float], ptr %124, i64 0, i64 0
  %126 = load ptr, ptr %3, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.update_data_t, ptr %126, i32 0, i32 2
  %128 = getelementptr inbounds [4 x float], ptr %127, i64 0, i64 0
  %129 = load ptr, ptr %3, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.update_data_t, ptr %129, i32 0, i32 3
  %131 = getelementptr inbounds [3 x float], ptr %130, i64 0, i64 0
  %132 = load ptr, ptr %3, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.update_data_t, ptr %132, i32 0, i32 4
  %134 = getelementptr inbounds [12 x float], ptr %133, i64 0, i64 0
  %135 = load ptr, ptr %3, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.update_data_t, ptr %135, i32 0, i32 5
  %137 = load float, ptr %136, align 4, !tbaa !9
  call void @_ZN10RobotState3setEPfS0_S0_S0_S0_f(ptr noundef nonnull align 16 dereferenceable(232) @rs, ptr noundef %122, ptr noundef %125, ptr noundef %128, ptr noundef %131, ptr noundef %134, float noundef %137)
  call void @llvm.lifetime.start.p0(i64 12, ptr %5) #8
  call void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %5)
  call void @_ZN5Eigen10QuaternionIfLi0EEC2ERKS1_(ptr noundef nonnull align 16 dereferenceable(16) %6, ptr noundef nonnull align 16 dereferenceable(16) getelementptr inbounds (%class.RobotState, ptr @rs, i32 0, i32 9))
  call void @_Z11quat_to_rpyN5Eigen10QuaternionIfLi0EEERNS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEE(ptr noundef %6, ptr noundef nonnull align 4 dereferenceable(12) %5)
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #8
  %138 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %5, i64 noundef 2)
  call void @_ZN5Eigen9DenseBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEElsERKf(ptr dead_on_unwind writable sret(%"struct.Eigen::CommaInitializer") align 8 %7, ptr noundef nonnull align 1 dereferenceable(1) @x_0, ptr noundef nonnull align 4 dereferenceable(4) %138)
  %139 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %5, i64 noundef 1)
          to label %140 unwind label %179

140:                                              ; preds = %2
  %141 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 4 dereferenceable(4) %139)
          to label %142 unwind label %179

142:                                              ; preds = %140
  %143 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %5, i64 noundef 0)
          to label %144 unwind label %179

144:                                              ; preds = %142
  %145 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 4 dereferenceable(4) %143)
          to label %146 unwind label %179

146:                                              ; preds = %144
  %147 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmINS1_IfLi3ELi1ELi0ELi3ELi1EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 1 dereferenceable(1) @rs)
          to label %148 unwind label %179

148:                                              ; preds = %146
  %149 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmINS1_IfLi3ELi1ELi0ELi3ELi1EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (%class.RobotState, ptr @rs, i32 0, i32 2))
          to label %150 unwind label %179

150:                                              ; preds = %148
  %151 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmINS1_IfLi3ELi1ELi0ELi3ELi1EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (%class.RobotState, ptr @rs, i32 0, i32 1))
          to label %152 unwind label %179

152:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  store float 0xC0239999A0000000, ptr %10, align 4, !tbaa !14
  %153 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %154 unwind label %183

154:                                              ; preds = %152
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #8
  %155 = call { ptr, ptr } @_ZNK5Eigen10MatrixBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEmlIS2_EEKNS_7ProductIS2_T_Li0EEERKNS0_IS6_EE(ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (%class.RobotState, ptr @rs, i32 0, i32 6), ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (%class.RobotState, ptr @rs, i32 0, i32 7))
  %156 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 0
  %157 = extractvalue { ptr, ptr } %155, 0
  store ptr %157, ptr %156, align 8
  %158 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 1
  %159 = extractvalue { ptr, ptr } %155, 1
  store ptr %159, ptr %158, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  %160 = call ptr @_ZN5Eigen9DenseBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (%class.RobotState, ptr @rs, i32 0, i32 6))
  %161 = getelementptr inbounds %"class.Eigen::Transpose", ptr %13, i32 0, i32 0
  store ptr %160, ptr %161, align 8
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEES3_Li0EEEEmlINS_9TransposeIS3_EEEEKNS1_IS4_T_Li0EEERKNS0_IS9_EE(ptr dead_on_unwind writable sret(%"class.Eigen::Product.214") align 8 %11, ptr noundef nonnull align 1 dereferenceable(1) %12, ptr noundef nonnull align 1 dereferenceable(1) %13)
  %162 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEaSINS_7ProductINS3_IS1_S1_Li0EEENS_9TransposeIS1_EELi0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 4 dereferenceable(36) @I_world, ptr noundef nonnull align 1 dereferenceable(1) %11)
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #8
  call void @_ZN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(36) %14, ptr noundef nonnull align 4 dereferenceable(36) @I_world)
  %163 = load float, ptr getelementptr inbounds (%class.RobotState, ptr @rs, i32 0, i32 11), align 4, !tbaa !15
  call void @_ZN5Eigen6MatrixIfLi3ELi4ELi0ELi3ELi4EEC2ERKS1_(ptr noundef nonnull align 16 dereferenceable(48) %15, ptr noundef nonnull align 16 dereferenceable(48) getelementptr inbounds (%class.RobotState, ptr @rs, i32 0, i32 4))
  call void @_ZN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(36) %16, ptr noundef nonnull align 4 dereferenceable(36) getelementptr inbounds (%class.RobotState, ptr @rs, i32 0, i32 6))
  %164 = load ptr, ptr %3, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.update_data_t, ptr %164, i32 0, i32 17
  %166 = load float, ptr %165, align 4, !tbaa !34
  call void @_Z10ct_ss_matsN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEEfNS0_IfLi3ELi4ELi0ELi3ELi4EEES1_RNS0_IfLi13ELi13ELi0ELi13ELi13EEERNS0_IfLi13ELi12ELi0ELi13ELi12EEEf(ptr noundef %14, float noundef %163, ptr noundef %15, ptr noundef %16, ptr noundef nonnull align 4 dereferenceable(676) @A_ct, ptr noundef nonnull align 16 dereferenceable(624) @B_ct_r, float noundef %166)
  call void @_ZN5Eigen6MatrixIfLi13ELi13ELi0ELi13ELi13EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(676) %17, ptr noundef nonnull align 4 dereferenceable(676) @A_ct)
  call void @_ZN5Eigen6MatrixIfLi13ELi12ELi0ELi13ELi12EEC2ERKS1_(ptr noundef nonnull align 16 dereferenceable(624) %18, ptr noundef nonnull align 16 dereferenceable(624) @B_ct_r)
  %167 = load ptr, ptr %4, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.problem_setup, ptr %167, i32 0, i32 0
  %169 = load float, ptr %168, align 4, !tbaa !35
  %170 = load ptr, ptr %4, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.problem_setup, ptr %170, i32 0, i32 3
  %172 = load i32, ptr %171, align 4, !tbaa !37
  %173 = trunc i32 %172 to i16
  call void @_Z4c2qpN5Eigen6MatrixIfLi13ELi13ELi0ELi13ELi13EEENS0_IfLi13ELi12ELi0ELi13ELi12EEEfs(ptr noundef %17, ptr noundef %18, float noundef %169, i16 noundef signext %173)
  call void @llvm.lifetime.start.p0(i64 52, ptr %19) #8
  call void @_ZN5Eigen6MatrixIfLi13ELi1ELi0ELi13ELi1EEC2Ev(ptr noundef nonnull align 4 dereferenceable(52) %19)
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  store i8 0, ptr %20, align 1, !tbaa !38
  br label %174

174:                                              ; preds = %198, %154
  %175 = load i8, ptr %20, align 1, !tbaa !38
  %176 = zext i8 %175 to i32
  %177 = icmp slt i32 %176, 12
  br i1 %177, label %188, label %178

178:                                              ; preds = %174
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  br label %201

179:                                              ; preds = %150, %148, %146, %144, %142, %140, %2
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %8, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %9, align 4
  br label %187

183:                                              ; preds = %152
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %8, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  br label %187

187:                                              ; preds = %183, %179
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #8
  br label %1397

188:                                              ; preds = %174
  %189 = load ptr, ptr %3, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.update_data_t, ptr %189, i32 0, i32 6
  %191 = load i8, ptr %20, align 1, !tbaa !38
  %192 = zext i8 %191 to i64
  %193 = getelementptr inbounds [12 x float], ptr %190, i64 0, i64 %192
  %194 = load float, ptr %193, align 4, !tbaa !14
  %195 = load i8, ptr %20, align 1, !tbaa !38
  %196 = zext i8 %195 to i64
  %197 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %19, i64 noundef %196)
  store float %194, ptr %197, align 4, !tbaa !14
  br label %198

198:                                              ; preds = %188
  %199 = load i8, ptr %20, align 1, !tbaa !38
  %200 = add i8 %199, 1
  store i8 %200, ptr %20, align 1, !tbaa !38
  br label %174, !llvm.loop !39

201:                                              ; preds = %178
  %202 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %19, i64 noundef 12)
  store float 0.000000e+00, ptr %202, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #8
  %203 = load ptr, ptr %4, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.problem_setup, ptr %203, i32 0, i32 3
  %205 = load i32, ptr %204, align 4, !tbaa !37
  %206 = sext i32 %205 to i64
  call void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEE9replicateEll(ptr dead_on_unwind writable sret(%"class.Eigen::Replicate") align 8 %21, ptr noundef nonnull align 1 dereferenceable(1) %19, i64 noundef %206, i64 noundef 1)
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #8
  call void @_ZN5Eigen10MatrixBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE8diagonalEv(ptr dead_on_unwind writable sret(%"class.Eigen::Diagonal") align 8 %22, ptr noundef nonnull align 1 dereferenceable(1) @S)
  %207 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5Eigen8DiagonalINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEELi0EEaSINS_9ReplicateINS1_IfLi13ELi1ELi0ELi13ELi1EEELin1ELin1EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %22, ptr noundef nonnull align 1 dereferenceable(1) %21)
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 2, ptr %23) #8
  store i16 0, ptr %23, align 2, !tbaa !41
  br label %208

208:                                              ; preds = %246, %201
  %209 = load i16, ptr %23, align 2, !tbaa !41
  %210 = sext i16 %209 to i32
  %211 = load ptr, ptr %4, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.problem_setup, ptr %211, i32 0, i32 3
  %213 = load i32, ptr %212, align 4, !tbaa !37
  %214 = icmp slt i32 %210, %213
  br i1 %214, label %216, label %215

215:                                              ; preds = %208
  store i32 5, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %23) #8
  br label %249

216:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 2, ptr %25) #8
  store i16 0, ptr %25, align 2, !tbaa !41
  br label %217

217:                                              ; preds = %242, %216
  %218 = load i16, ptr %25, align 2, !tbaa !41
  %219 = sext i16 %218 to i32
  %220 = icmp slt i32 %219, 12
  br i1 %220, label %222, label %221

221:                                              ; preds = %217
  store i32 8, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %25) #8
  br label %245

222:                                              ; preds = %217
  %223 = load ptr, ptr %3, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.update_data_t, ptr %223, i32 0, i32 7
  %225 = load i16, ptr %23, align 2, !tbaa !41
  %226 = sext i16 %225 to i32
  %227 = mul nsw i32 12, %226
  %228 = load i16, ptr %25, align 2, !tbaa !41
  %229 = sext i16 %228 to i32
  %230 = add nsw i32 %227, %229
  %231 = sext i32 %230 to i64
  %232 = getelementptr inbounds [432 x float], ptr %224, i64 0, i64 %231
  %233 = load float, ptr %232, align 4, !tbaa !14
  %234 = load i16, ptr %23, align 2, !tbaa !41
  %235 = sext i16 %234 to i32
  %236 = mul nsw i32 13, %235
  %237 = load i16, ptr %25, align 2, !tbaa !41
  %238 = sext i16 %237 to i32
  %239 = add nsw i32 %236, %238
  %240 = sext i32 %239 to i64
  %241 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %240, i64 noundef 0)
  store float %233, ptr %241, align 4, !tbaa !14
  br label %242

242:                                              ; preds = %222
  %243 = load i16, ptr %25, align 2, !tbaa !41
  %244 = add i16 %243, 1
  store i16 %244, ptr %25, align 2, !tbaa !41
  br label %217, !llvm.loop !43

245:                                              ; preds = %221
  br label %246

246:                                              ; preds = %245
  %247 = load i16, ptr %23, align 2, !tbaa !41
  %248 = add i16 %247, 1
  store i16 %248, ptr %23, align 2, !tbaa !41
  br label %208, !llvm.loop !44

249:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 2, ptr %26) #8
  store i16 0, ptr %26, align 2, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 2, ptr %27) #8
  store i16 0, ptr %27, align 2, !tbaa !41
  br label %250

250:                                              ; preds = %318, %249
  %251 = load i16, ptr %27, align 2, !tbaa !41
  %252 = sext i16 %251 to i32
  %253 = load ptr, ptr %4, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.problem_setup, ptr %253, i32 0, i32 3
  %255 = load i32, ptr %254, align 4, !tbaa !37
  %256 = icmp slt i32 %252, %255
  br i1 %256, label %258, label %257

257:                                              ; preds = %250
  store i32 11, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %27) #8
  br label %321

258:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 2, ptr %28) #8
  store i16 0, ptr %28, align 2, !tbaa !41
  br label %259

259:                                              ; preds = %314, %258
  %260 = load i16, ptr %28, align 2, !tbaa !41
  %261 = sext i16 %260 to i32
  %262 = icmp slt i32 %261, 4
  br i1 %262, label %264, label %263

263:                                              ; preds = %259
  store i32 14, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %28) #8
  br label %317

264:                                              ; preds = %259
  %265 = load i16, ptr %26, align 2, !tbaa !41
  %266 = sext i16 %265 to i32
  %267 = mul nsw i32 5, %266
  %268 = add nsw i32 %267, 0
  %269 = sext i32 %268 to i64
  %270 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %269)
  store float 0x42274876E0000000, ptr %270, align 4, !tbaa !14
  %271 = load i16, ptr %26, align 2, !tbaa !41
  %272 = sext i16 %271 to i32
  %273 = mul nsw i32 5, %272
  %274 = add nsw i32 %273, 1
  %275 = sext i32 %274 to i64
  %276 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %275)
  store float 0x42274876E0000000, ptr %276, align 4, !tbaa !14
  %277 = load i16, ptr %26, align 2, !tbaa !41
  %278 = sext i16 %277 to i32
  %279 = mul nsw i32 5, %278
  %280 = add nsw i32 %279, 2
  %281 = sext i32 %280 to i64
  %282 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %281)
  store float 0x42274876E0000000, ptr %282, align 4, !tbaa !14
  %283 = load i16, ptr %26, align 2, !tbaa !41
  %284 = sext i16 %283 to i32
  %285 = mul nsw i32 5, %284
  %286 = add nsw i32 %285, 3
  %287 = sext i32 %286 to i64
  %288 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %287)
  store float 0x42274876E0000000, ptr %288, align 4, !tbaa !14
  %289 = load ptr, ptr %3, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.update_data_t, ptr %289, i32 0, i32 9
  %291 = load i16, ptr %27, align 2, !tbaa !41
  %292 = sext i16 %291 to i32
  %293 = mul nsw i32 %292, 4
  %294 = load i16, ptr %28, align 2, !tbaa !41
  %295 = sext i16 %294 to i32
  %296 = add nsw i32 %293, %295
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds [36 x i8], ptr %290, i64 0, i64 %297
  %299 = load i8, ptr %298, align 1, !tbaa !38
  %300 = zext i8 %299 to i32
  %301 = sitofp i32 %300 to float
  %302 = load ptr, ptr %4, align 8, !tbaa !5
  %303 = getelementptr inbounds %struct.problem_setup, ptr %302, i32 0, i32 2
  %304 = load float, ptr %303, align 4, !tbaa !45
  %305 = fmul float %301, %304
  %306 = load i16, ptr %26, align 2, !tbaa !41
  %307 = sext i16 %306 to i32
  %308 = mul nsw i32 5, %307
  %309 = add nsw i32 %308, 4
  %310 = sext i32 %309 to i64
  %311 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %310)
  store float %305, ptr %311, align 4, !tbaa !14
  %312 = load i16, ptr %26, align 2, !tbaa !41
  %313 = add i16 %312, 1
  store i16 %313, ptr %26, align 2, !tbaa !41
  br label %314

314:                                              ; preds = %264
  %315 = load i16, ptr %28, align 2, !tbaa !41
  %316 = add i16 %315, 1
  store i16 %316, ptr %28, align 2, !tbaa !41
  br label %259, !llvm.loop !46

317:                                              ; preds = %263
  br label %318

318:                                              ; preds = %317
  %319 = load i16, ptr %27, align 2, !tbaa !41
  %320 = add i16 %319, 1
  store i16 %320, ptr %27, align 2, !tbaa !41
  br label %250, !llvm.loop !47

321:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %322 = load ptr, ptr %4, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.problem_setup, ptr %322, i32 0, i32 1
  %324 = load float, ptr %323, align 4, !tbaa !48
  %325 = fdiv float 1.000000e+00, %324
  store float %325, ptr %29, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 60, ptr %30) #8
  call void @_ZN5Eigen6MatrixIfLi5ELi3ELi0ELi5ELi3EEC2Ev(ptr noundef nonnull align 4 dereferenceable(60) %30)
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  call void @_ZN5Eigen9DenseBaseINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEElsERKf(ptr dead_on_unwind writable sret(%"struct.Eigen::CommaInitializer.248") align 8 %31, ptr noundef nonnull align 1 dereferenceable(1) %30, ptr noundef nonnull align 4 dereferenceable(4) %29)
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  store float 0.000000e+00, ptr %32, align 4, !tbaa !14
  %326 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %327 unwind label %367

327:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store float 1.000000e+00, ptr %33, align 4, !tbaa !14
  %328 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %329 unwind label %371

329:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %330 = load float, ptr %29, align 4, !tbaa !14
  %331 = fneg float %330
  store float %331, ptr %34, align 4, !tbaa !14
  %332 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %328, ptr noundef nonnull align 4 dereferenceable(4) %34)
          to label %333 unwind label %375

333:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  store float 0.000000e+00, ptr %35, align 4, !tbaa !14
  %334 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %335 unwind label %379

335:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  store float 1.000000e+00, ptr %36, align 4, !tbaa !14
  %336 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %337 unwind label %383

337:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  store float 0.000000e+00, ptr %37, align 4, !tbaa !14
  %338 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %339 unwind label %387

339:                                              ; preds = %337
  %340 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %338, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %341 unwind label %387

341:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  store float 1.000000e+00, ptr %38, align 4, !tbaa !14
  %342 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %343 unwind label %391

343:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  store float 0.000000e+00, ptr %39, align 4, !tbaa !14
  %344 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %345 unwind label %395

345:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %346 = load float, ptr %29, align 4, !tbaa !14
  %347 = fneg float %346
  store float %347, ptr %40, align 4, !tbaa !14
  %348 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %344, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %349 unwind label %399

349:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  store float 1.000000e+00, ptr %41, align 4, !tbaa !14
  %350 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %351 unwind label %403

351:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  store float 0.000000e+00, ptr %42, align 4, !tbaa !14
  %352 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %350, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %353 unwind label %407

353:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  store float 0.000000e+00, ptr %43, align 4, !tbaa !14
  %354 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %355 unwind label %411

355:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  store float 1.000000e+00, ptr %44, align 4, !tbaa !14
  %356 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 4 dereferenceable(4) %44)
          to label %357 unwind label %415

357:                                              ; preds = %355
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 2, ptr %45) #8
  store i16 0, ptr %45, align 2, !tbaa !41
  br label %358

358:                                              ; preds = %441, %357
  %359 = load i16, ptr %45, align 2, !tbaa !41
  %360 = sext i16 %359 to i32
  %361 = load ptr, ptr %4, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.problem_setup, ptr %361, i32 0, i32 3
  %363 = load i32, ptr %362, align 4, !tbaa !37
  %364 = mul nsw i32 %363, 4
  %365 = icmp slt i32 %360, %364
  br i1 %365, label %431, label %366

366:                                              ; preds = %358
  store i32 17, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %45) #8
  br label %444

367:                                              ; preds = %321
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %8, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %9, align 4
  br label %430

371:                                              ; preds = %327
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %8, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %9, align 4
  br label %429

375:                                              ; preds = %329
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %8, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %9, align 4
  br label %428

379:                                              ; preds = %333
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %8, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %9, align 4
  br label %427

383:                                              ; preds = %335
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %8, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %9, align 4
  br label %426

387:                                              ; preds = %339, %337
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %8, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %9, align 4
  br label %425

391:                                              ; preds = %341
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %8, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %9, align 4
  br label %424

395:                                              ; preds = %343
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %8, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %9, align 4
  br label %423

399:                                              ; preds = %345
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %8, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %9, align 4
  br label %422

403:                                              ; preds = %349
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %8, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %9, align 4
  br label %421

407:                                              ; preds = %351
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %8, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %9, align 4
  br label %420

411:                                              ; preds = %353
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %8, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %9, align 4
  br label %419

415:                                              ; preds = %355
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %8, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %419

419:                                              ; preds = %415, %411
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %420

420:                                              ; preds = %419, %407
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %421

421:                                              ; preds = %420, %403
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %422

422:                                              ; preds = %421, %399
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %423

423:                                              ; preds = %422, %395
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %424

424:                                              ; preds = %423, %391
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %425

425:                                              ; preds = %424, %387
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %426

426:                                              ; preds = %425, %383
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %427

427:                                              ; preds = %426, %379
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %428

428:                                              ; preds = %427, %375
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %429

429:                                              ; preds = %428, %371
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %430

430:                                              ; preds = %429, %367
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  br label %1396

431:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 56, ptr %46) #8
  %432 = load i16, ptr %45, align 2, !tbaa !41
  %433 = sext i16 %432 to i32
  %434 = mul nsw i32 %433, 5
  %435 = sext i32 %434 to i64
  %436 = load i16, ptr %45, align 2, !tbaa !41
  %437 = sext i16 %436 to i32
  %438 = mul nsw i32 %437, 3
  %439 = sext i32 %438 to i64
  call void @_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE5blockIiiEENS3_13FixedBlockXprIXsr8internal15get_fixed_valueIT_EE5valueEXsr8internal15get_fixed_valueIT0_EE5valueEE4TypeEllS6_S7_(ptr dead_on_unwind writable sret(%"class.Eigen::Block.132") align 8 %46, ptr noundef nonnull align 1 dereferenceable(1) @fmat, i64 noundef %435, i64 noundef %439, i32 noundef 5, i32 noundef 3)
  %440 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5Eigen5BlockINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEELin1ELin1ELb0EEaSINS1_IfLi5ELi3ELi0ELi5ELi3EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(56) %46, ptr noundef nonnull align 1 dereferenceable(1) %30)
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #8
  br label %441

441:                                              ; preds = %431
  %442 = load i16, ptr %45, align 2, !tbaa !41
  %443 = add i16 %442, 1
  store i16 %443, ptr %45, align 2, !tbaa !41
  br label %358, !llvm.loop !49

444:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 120, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  store i32 2, ptr %48, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 80, ptr %49) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  %445 = call ptr @_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) @B_qp)
  %446 = getelementptr inbounds %"class.Eigen::Transpose.280", ptr %52, i32 0, i32 0
  store ptr %445, ptr %446, align 8
  %447 = call { ptr, ptr } @_ZNK5Eigen10MatrixBaseINS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEEEmlIS3_EEKNS_7ProductIS4_T_Li0EEERKNS0_IS8_EE(ptr noundef nonnull align 1 dereferenceable(1) %52, ptr noundef nonnull align 1 dereferenceable(1) @S)
  %448 = getelementptr inbounds { ptr, ptr }, ptr %51, i32 0, i32 0
  %449 = extractvalue { ptr, ptr } %447, 0
  store ptr %449, ptr %448, align 8
  %450 = getelementptr inbounds { ptr, ptr }, ptr %51, i32 0, i32 1
  %451 = extractvalue { ptr, ptr } %447, 1
  store ptr %451, ptr %450, align 8
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEES4_Li0EEEEmlIS4_EEKNS1_IS6_T_Li0EEERKNS0_IS9_EE(ptr dead_on_unwind writable sret(%"class.Eigen::Product.266") align 8 %50, ptr noundef nonnull align 1 dereferenceable(1) %51, ptr noundef nonnull align 1 dereferenceable(1) @B_qp)
  call void @llvm.lifetime.start.p0(i64 48, ptr %53) #8
  %452 = load ptr, ptr %3, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.update_data_t, ptr %452, i32 0, i32 8
  call void @_ZN5EigenmlIfEEKNS_13CwiseBinaryOpINS_8internal17scalar_product_opINS2_18promote_scalar_argIfT_Xsr5Eigen8internal14has_ReturnTypeINS_20ScalarBinaryOpTraitsIS5_fNS3_IS5_fEEEEEE5valueEE4typeEfEEKNS2_19plain_constant_typeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEESA_E4typeEKSE_EERKS5_RKNS_10MatrixBaseISE_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.288") align 8 %53, ptr noundef nonnull align 4 dereferenceable(4) %453, ptr noundef nonnull align 1 dereferenceable(1) @eye_12h)
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS1_INS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEES4_Li0EEES4_Li0EEEEplINS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINSB_18scalar_constant_opIfEEKS4_EESH_EEEEKNSA_INSB_13scalar_sum_opIfNSB_6traitsIT_E6ScalarEEEKS7_KSN_EERKNS0_ISN_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.260") align 8 %49, ptr noundef nonnull align 1 dereferenceable(1) %50, ptr noundef nonnull align 1 dereferenceable(1) %53)
  call void @_ZN5EigenmlIiEEKNS_13CwiseBinaryOpINS_8internal17scalar_product_opINS2_18promote_scalar_argIfT_Xsr5Eigen8internal14has_ReturnTypeINS_20ScalarBinaryOpTraitsIS5_fNS3_IS5_fEEEEEE5valueEE4typeEfEEKNS2_19plain_constant_typeINS1_INS2_13scalar_sum_opIffEEKNS_7ProductINSF_INS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEESI_Li0EEESI_Li0EEEKNS1_INS3_IffEEKNS_14CwiseNullaryOpINS2_18scalar_constant_opIfEEKSI_EESR_EEEESA_E4typeEKSW_EERKS5_RKNS_10MatrixBaseISW_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.249") align 8 %47, ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef nonnull align 1 dereferenceable(1) %49)
  %454 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINS4_18scalar_constant_opIfEEKS1_EEKNS3_INS4_13scalar_sum_opIffEEKNS_7ProductINSF_INS_9TransposeIS1_EES1_Li0EEES1_Li0EEEKNS3_IS6_SC_SA_EEEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) @qH, ptr noundef nonnull align 1 dereferenceable(1) %47)
  call void @llvm.lifetime.end.p0(i64 48, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 120, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 88, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  store i32 2, ptr %57, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %455 = call ptr @_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) @B_qp)
  %456 = getelementptr inbounds %"class.Eigen::Transpose.280", ptr %58, i32 0, i32 0
  store ptr %455, ptr %456, align 8
  call void @_ZN5EigenmlIiEEKNS_13CwiseBinaryOpINS_8internal17scalar_product_opINS2_18promote_scalar_argIfT_Xsr5Eigen8internal14has_ReturnTypeINS_20ScalarBinaryOpTraitsIS5_fNS3_IS5_fEEEEEE5valueEE4typeEfEEKNS2_19plain_constant_typeINS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEESA_E4typeEKSG_EERKS5_RKNS_10MatrixBaseISG_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.311") align 8 %56, ptr noundef nonnull align 4 dereferenceable(4) %57, ptr noundef nonnull align 1 dereferenceable(1) %58)
  call void @_ZNK5Eigen10MatrixBaseINS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINS2_18scalar_constant_opIfEEKNS_6MatrixIfLin1ELin1ELi1ELin1ELin1EEEEEKNS_9TransposeINS8_IfLin1ELin1ELi0ELin1ELin1EEEEEEEEmlISE_EEKNS_7ProductISH_T_Li0EEERKNS0_ISL_EE(ptr dead_on_unwind writable sret(%"class.Eigen::Product.304") align 8 %55, ptr noundef nonnull align 1 dereferenceable(1) %56, ptr noundef nonnull align 1 dereferenceable(1) @S)
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #8
  %457 = call { ptr, ptr } @_ZNK5Eigen10MatrixBaseINS_6MatrixIfLin1ELi13ELi0ELin1ELi13EEEEmlINS1_IfLi13ELi1ELi0ELi13ELi1EEEEEKNS_7ProductIS2_T_Li0EEERKNS0_IS7_EE(ptr noundef nonnull align 1 dereferenceable(1) @A_qp, ptr noundef nonnull align 1 dereferenceable(1) @x_0)
  %458 = getelementptr inbounds { ptr, ptr }, ptr %60, i32 0, i32 0
  %459 = extractvalue { ptr, ptr } %457, 0
  store ptr %459, ptr %458, align 8
  %460 = getelementptr inbounds { ptr, ptr }, ptr %60, i32 0, i32 1
  %461 = extractvalue { ptr, ptr } %457, 1
  store ptr %461, ptr %460, align 8
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS_6MatrixIfLin1ELi13ELi0ELin1ELi13EEENS2_IfLi13ELi1ELi0ELi13ELi1EEELi0EEEEmiINS2_IfLin1ELi1ELi0ELin1ELi1EEEEEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIfNSA_6traitsIT_E6ScalarEEEKS5_KSD_EERKNS0_ISD_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.324") align 8 %59, ptr noundef nonnull align 1 dereferenceable(1) %60, ptr noundef nonnull align 1 dereferenceable(1) @X_d)
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINS3_18scalar_constant_opIfEEKNS_6MatrixIfLin1ELin1ELi1ELin1ELin1EEEEEKNS_9TransposeINS9_IfLin1ELin1ELi0ELin1ELin1EEEEEEESF_Li0EEEEmlINS2_INS3_20scalar_difference_opIffEEKNS1_INS9_IfLin1ELi13ELi0ELin1ELi13EEENS9_IfLi13ELi1ELi0ELi13ELi1EEELi0EEEKNS9_IfLin1ELi1ELi0ELin1ELi1EEEEEEEKNS1_ISJ_T_Li0EEERKNS0_ISV_EE(ptr dead_on_unwind writable sret(%"class.Eigen::Product.297") align 8 %54, ptr noundef nonnull align 1 dereferenceable(1) %55, ptr noundef nonnull align 1 dereferenceable(1) %59)
  %462 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEaSINS_7ProductINS3_INS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINS5_18scalar_constant_opIfEEKNS0_IfLin1ELin1ELi1ELin1ELin1EEEEEKNS_9TransposeINS0_IfLin1ELin1ELi0ELin1ELin1EEEEEEESG_Li0EEENS4_INS5_20scalar_difference_opIffEEKNS3_INS0_IfLin1ELi13ELi0ELin1ELi13EEENS0_IfLi13ELi1ELi0ELi13ELi1EEELi0EEEKS1_EELi0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) @qg, ptr noundef nonnull align 1 dereferenceable(1) %54)
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 968, ptr %61) #8
  %463 = load ptr, ptr %4, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.problem_setup, ptr %463, i32 0, i32 3
  %465 = load i32, ptr %464, align 4, !tbaa !37
  %466 = mul nsw i32 %465, 12
  %467 = sext i32 %466 to i64
  %468 = load ptr, ptr %4, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.problem_setup, ptr %468, i32 0, i32 3
  %470 = load i32, ptr %469, align 4, !tbaa !37
  %471 = mul nsw i32 %470, 20
  %472 = sext i32 %471 to i64
  call void @_ZN9QpProblemIdEC2Ellb(ptr noundef nonnull align 8 dereferenceable(962) %61, i64 noundef %467, i64 noundef %472, i1 noundef zeroext true)
  %473 = load ptr, ptr %3, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.update_data_t, ptr %473, i32 0, i32 16
  %475 = load i32, ptr %474, align 8, !tbaa !51
  %476 = icmp eq i32 %475, 1
  br i1 %476, label %477, label %568

477:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #8
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE4castIdEENS3_7CastXprIT_E4TypeEv(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseUnaryOp") align 8 %62, ptr noundef nonnull align 1 dereferenceable(1) @fmat)
          to label %478 unwind label %503

478:                                              ; preds = %477
  %479 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 1
  %480 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_12CwiseUnaryOpINS_8internal14scalar_cast_opIfdEEKNS0_IfLin1ELin1ELi0ELin1ELin1EEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %479, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %481 unwind label %503

481:                                              ; preds = %478
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #8
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE4castIdEENS3_7CastXprIT_E4TypeEv(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseUnaryOp") align 8 %63, ptr noundef nonnull align 1 dereferenceable(1) @qH)
          to label %482 unwind label %507

482:                                              ; preds = %481
  %483 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 2
  %484 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_12CwiseUnaryOpINS_8internal14scalar_cast_opIfdEEKNS0_IfLin1ELin1ELi0ELin1ELin1EEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %483, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %485 unwind label %507

485:                                              ; preds = %482
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #8
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEE4castIdEENS3_7CastXprIT_E4TypeEv(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseUnaryOp.366") align 8 %64, ptr noundef nonnull align 1 dereferenceable(1) @qg)
          to label %486 unwind label %511

486:                                              ; preds = %485
  %487 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 7
  %488 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSINS_12CwiseUnaryOpINS_8internal14scalar_cast_opIfdEEKNS0_IfLin1ELi1ELi0ELin1ELi1EEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %487, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %489 unwind label %511

489:                                              ; preds = %486
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #8
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEE4castIdEENS3_7CastXprIT_E4TypeEv(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseUnaryOp.366") align 8 %65, ptr noundef nonnull align 1 dereferenceable(1) @U_b)
          to label %490 unwind label %515

490:                                              ; preds = %489
  %491 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 6
  %492 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSINS_12CwiseUnaryOpINS_8internal14scalar_cast_opIfdEEKNS0_IfLin1ELi1ELi0ELin1ELi1EEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %491, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %493 unwind label %515

493:                                              ; preds = %490
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 2, ptr %66) #8
  store i16 0, ptr %66, align 2, !tbaa !41
  br label %494

494:                                              ; preds = %525, %493
  %495 = load i16, ptr %66, align 2, !tbaa !41
  %496 = sext i16 %495 to i32
  %497 = load ptr, ptr %4, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.problem_setup, ptr %497, i32 0, i32 3
  %499 = load i32, ptr %498, align 4, !tbaa !37
  %500 = mul nsw i32 20, %499
  %501 = icmp slt i32 %496, %500
  br i1 %501, label %519, label %502

502:                                              ; preds = %494
  store i32 20, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %66) #8
  br label %532

503:                                              ; preds = %478, %477
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %8, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #8
  br label %1395

507:                                              ; preds = %482, %481
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %8, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #8
  br label %1395

511:                                              ; preds = %486, %485
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %8, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #8
  br label %1395

515:                                              ; preds = %490, %489
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %8, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #8
  br label %1395

519:                                              ; preds = %494
  %520 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 5
  %521 = load i16, ptr %66, align 2, !tbaa !41
  %522 = sext i16 %521 to i64
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %520, i64 noundef %522)
          to label %524 unwind label %528

524:                                              ; preds = %519
  store double 0.000000e+00, ptr %523, align 8, !tbaa !52
  br label %525

525:                                              ; preds = %524
  %526 = load i16, ptr %66, align 2, !tbaa !41
  %527 = add i16 %526, 1
  store i16 %527, ptr %66, align 2, !tbaa !41
  br label %494, !llvm.loop !53

528:                                              ; preds = %519
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %8, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %66) #8
  br label %1395

532:                                              ; preds = %502
  %533 = load ptr, ptr %3, align 8, !tbaa !5
  %534 = getelementptr inbounds %struct.update_data_t, ptr %533, i32 0, i32 13
  %535 = load double, ptr %534, align 8, !tbaa !54
  %536 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 0
  %537 = getelementptr inbounds %struct.QpProblemSettings, ptr %536, i32 0, i32 2
  store double %535, ptr %537, align 8, !tbaa !55
  %538 = load ptr, ptr %3, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.update_data_t, ptr %538, i32 0, i32 14
  %540 = load double, ptr %539, align 8, !tbaa !82
  %541 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 0
  %542 = getelementptr inbounds %struct.QpProblemSettings, ptr %541, i32 0, i32 3
  store double %540, ptr %542, align 8, !tbaa !83
  %543 = load ptr, ptr %3, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.update_data_t, ptr %543, i32 0, i32 15
  %545 = load double, ptr %544, align 8, !tbaa !84
  %546 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 0
  %547 = getelementptr inbounds %struct.QpProblemSettings, ptr %546, i32 0, i32 8
  store double %545, ptr %547, align 8, !tbaa !85
  %548 = load ptr, ptr %3, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.update_data_t, ptr %548, i32 0, i32 12
  %550 = load double, ptr %549, align 8, !tbaa !86
  %551 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 0
  %552 = getelementptr inbounds %struct.QpProblemSettings, ptr %551, i32 0, i32 1
  store double %550, ptr %552, align 8, !tbaa !87
  %553 = load ptr, ptr %3, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.update_data_t, ptr %553, i32 0, i32 11
  %555 = load i32, ptr %554, align 8, !tbaa !88
  %556 = sext i32 %555 to i64
  %557 = getelementptr inbounds %class.QpProblem, ptr %61, i32 0, i32 0
  %558 = getelementptr inbounds %struct.QpProblemSettings, ptr %557, i32 0, i32 0
  store i64 %556, ptr %558, align 8, !tbaa !89
  %559 = load ptr, ptr %3, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.update_data_t, ptr %559, i32 0, i32 11
  %561 = load i32, ptr %560, align 8, !tbaa !88
  %562 = sext i32 %561 to i64
  invoke void @_ZN9QpProblemIdE12runFromDenseElbb(ptr noundef nonnull align 8 dereferenceable(962) %61, i64 noundef %562, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %563 unwind label %564

563:                                              ; preds = %532
  br label %1360

564:                                              ; preds = %602, %589, %581, %568, %532
  %565 = landingpad { ptr, i32 }
          cleanup
  %566 = extractvalue { ptr, i32 } %565, 0
  store ptr %566, ptr %8, align 8
  %567 = extractvalue { ptr, i32 } %565, 1
  store i32 %567, ptr %9, align 4
  br label %1395

568:                                              ; preds = %444
  %569 = load ptr, ptr @H_qpoases, align 8, !tbaa !5
  invoke void @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %67, ptr noundef nonnull align 8 dereferenceable(24) @qH)
          to label %570 unwind label %564

570:                                              ; preds = %568
  %571 = load ptr, ptr %4, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.problem_setup, ptr %571, i32 0, i32 3
  %573 = load i32, ptr %572, align 4, !tbaa !37
  %574 = mul nsw i32 %573, 12
  %575 = trunc i32 %574 to i16
  %576 = load ptr, ptr %4, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.problem_setup, ptr %576, i32 0, i32 3
  %578 = load i32, ptr %577, align 4, !tbaa !37
  %579 = mul nsw i32 %578, 12
  %580 = trunc i32 %579 to i16
  invoke void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef %569, ptr noundef %67, i16 noundef signext %575, i16 noundef signext %580)
          to label %581 unwind label %620

581:                                              ; preds = %570
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #8
  %582 = load ptr, ptr @g_qpoases, align 8, !tbaa !5
  invoke void @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEC2INS0_IfLin1ELi1ELi0ELin1ELi1EEEEERKNS_9EigenBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 1 dereferenceable(1) @qg)
          to label %583 unwind label %564

583:                                              ; preds = %581
  %584 = load ptr, ptr %4, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.problem_setup, ptr %584, i32 0, i32 3
  %586 = load i32, ptr %585, align 4, !tbaa !37
  %587 = mul nsw i32 %586, 12
  %588 = trunc i32 %587 to i16
  invoke void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef %582, ptr noundef %68, i16 noundef signext %588, i16 noundef signext 1)
          to label %589 unwind label %624

589:                                              ; preds = %583
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %590 = load ptr, ptr @A_qpoases, align 8, !tbaa !5
  invoke void @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) @fmat)
          to label %591 unwind label %564

591:                                              ; preds = %589
  %592 = load ptr, ptr %4, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.problem_setup, ptr %592, i32 0, i32 3
  %594 = load i32, ptr %593, align 4, !tbaa !37
  %595 = mul nsw i32 %594, 20
  %596 = trunc i32 %595 to i16
  %597 = load ptr, ptr %4, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.problem_setup, ptr %597, i32 0, i32 3
  %599 = load i32, ptr %598, align 4, !tbaa !37
  %600 = mul nsw i32 %599, 12
  %601 = trunc i32 %600 to i16
  invoke void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef %590, ptr noundef %69, i16 noundef signext %596, i16 noundef signext %601)
          to label %602 unwind label %628

602:                                              ; preds = %591
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #8
  %603 = load ptr, ptr @ub_qpoases, align 8, !tbaa !5
  invoke void @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEC2INS0_IfLin1ELi1ELi0ELin1ELi1EEEEERKNS_9EigenBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %70, ptr noundef nonnull align 1 dereferenceable(1) @U_b)
          to label %604 unwind label %564

604:                                              ; preds = %602
  %605 = load ptr, ptr %4, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.problem_setup, ptr %605, i32 0, i32 3
  %607 = load i32, ptr %606, align 4, !tbaa !37
  %608 = mul nsw i32 %607, 20
  %609 = trunc i32 %608 to i16
  invoke void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef %603, ptr noundef %70, i16 noundef signext %609, i16 noundef signext 1)
          to label %610 unwind label %632

610:                                              ; preds = %604
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %70) #8
  call void @llvm.lifetime.start.p0(i64 2, ptr %71) #8
  store i16 0, ptr %71, align 2, !tbaa !41
  br label %611

611:                                              ; preds = %641, %610
  %612 = load i16, ptr %71, align 2, !tbaa !41
  %613 = sext i16 %612 to i32
  %614 = load ptr, ptr %4, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.problem_setup, ptr %614, i32 0, i32 3
  %616 = load i32, ptr %615, align 4, !tbaa !37
  %617 = mul nsw i32 20, %616
  %618 = icmp slt i32 %613, %617
  br i1 %618, label %636, label %619

619:                                              ; preds = %611
  store i32 23, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %71) #8
  br label %644

620:                                              ; preds = %570
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %8, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %9, align 4
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #8
  br label %1395

624:                                              ; preds = %583
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %8, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %9, align 4
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  br label %1395

628:                                              ; preds = %591
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %8, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %9, align 4
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #8
  br label %1395

632:                                              ; preds = %604
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %8, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %9, align 4
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %70) #8
  br label %1395

636:                                              ; preds = %611
  %637 = load ptr, ptr @lb_qpoases, align 8, !tbaa !5
  %638 = load i16, ptr %71, align 2, !tbaa !41
  %639 = sext i16 %638 to i64
  %640 = getelementptr inbounds double, ptr %637, i64 %639
  store double 0.000000e+00, ptr %640, align 8, !tbaa !52
  br label %641

641:                                              ; preds = %636
  %642 = load i16, ptr %71, align 2, !tbaa !41
  %643 = add i16 %642, 1
  store i16 %643, ptr %71, align 2, !tbaa !41
  br label %611, !llvm.loop !90

644:                                              ; preds = %619
  call void @llvm.lifetime.start.p0(i64 2, ptr %72) #8
  %645 = load ptr, ptr %4, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.problem_setup, ptr %645, i32 0, i32 3
  %647 = load i32, ptr %646, align 4, !tbaa !37
  %648 = mul nsw i32 20, %647
  %649 = trunc i32 %648 to i16
  store i16 %649, ptr %72, align 2, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 2, ptr %73) #8
  %650 = load ptr, ptr %4, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.problem_setup, ptr %650, i32 0, i32 3
  %652 = load i32, ptr %651, align 4, !tbaa !37
  %653 = mul nsw i32 12, %652
  %654 = trunc i32 %653 to i16
  store i16 %654, ptr %73, align 2, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #8
  store i32 100, ptr %74, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  %655 = load i16, ptr %73, align 2, !tbaa !41
  %656 = sext i16 %655 to i32
  store i32 %656, ptr %75, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  %657 = load i16, ptr %72, align 2, !tbaa !41
  %658 = sext i16 %657 to i32
  store i32 %658, ptr %76, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  store i32 0, ptr %77, align 4, !tbaa !50
  br label %659

659:                                              ; preds = %669, %644
  %660 = load i32, ptr %77, align 4, !tbaa !50
  %661 = load i16, ptr %72, align 2, !tbaa !41
  %662 = sext i16 %661 to i32
  %663 = icmp slt i32 %660, %662
  br i1 %663, label %665, label %664

664:                                              ; preds = %659
  store i32 26, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  br label %672

665:                                              ; preds = %659
  %666 = load i32, ptr %77, align 4, !tbaa !50
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %667
  store i8 0, ptr %668, align 1, !tbaa !38
  br label %669

669:                                              ; preds = %665
  %670 = load i32, ptr %77, align 4, !tbaa !50
  %671 = add nsw i32 %670, 1
  store i32 %671, ptr %77, align 4, !tbaa !50
  br label %659, !llvm.loop !91

672:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #8
  store i32 0, ptr %78, align 4, !tbaa !50
  br label %673

673:                                              ; preds = %683, %672
  %674 = load i32, ptr %78, align 4, !tbaa !50
  %675 = load i16, ptr %73, align 2, !tbaa !41
  %676 = sext i16 %675 to i32
  %677 = icmp slt i32 %674, %676
  br i1 %677, label %679, label %678

678:                                              ; preds = %673
  store i32 29, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #8
  br label %686

679:                                              ; preds = %673
  %680 = load i32, ptr %78, align 4, !tbaa !50
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %681
  store i8 0, ptr %682, align 1, !tbaa !38
  br label %683

683:                                              ; preds = %679
  %684 = load i32, ptr %78, align 4, !tbaa !50
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr %78, align 4, !tbaa !50
  br label %673, !llvm.loop !92

686:                                              ; preds = %678
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #8
  store i32 0, ptr %79, align 4, !tbaa !50
  br label %687

687:                                              ; preds = %779, %686
  %688 = load i32, ptr %79, align 4, !tbaa !50
  %689 = load i16, ptr %72, align 2, !tbaa !41
  %690 = sext i16 %689 to i32
  %691 = icmp slt i32 %688, %690
  br i1 %691, label %693, label %692

692:                                              ; preds = %687
  store i32 32, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  br label %782

693:                                              ; preds = %687
  %694 = load ptr, ptr @lb_qpoases, align 8, !tbaa !5
  %695 = load i32, ptr %79, align 4, !tbaa !50
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds double, ptr %694, i64 %696
  %698 = load double, ptr %697, align 8, !tbaa !52
  %699 = fptrunc double %698 to float
  %700 = call noundef signext i8 @_Z9near_zerof(float noundef %699)
  %701 = icmp ne i8 %700, 0
  br i1 %701, label %702, label %711

702:                                              ; preds = %693
  %703 = load ptr, ptr @ub_qpoases, align 8, !tbaa !5
  %704 = load i32, ptr %79, align 4, !tbaa !50
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds double, ptr %703, i64 %705
  %707 = load double, ptr %706, align 8, !tbaa !52
  %708 = fptrunc double %707 to float
  %709 = call noundef signext i8 @_Z9near_zerof(float noundef %708)
  %710 = icmp ne i8 %709, 0
  br i1 %710, label %712, label %711

711:                                              ; preds = %702, %693
  br label %779

712:                                              ; preds = %702
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  %713 = load ptr, ptr @A_qpoases, align 8, !tbaa !5
  %714 = load i32, ptr %79, align 4, !tbaa !50
  %715 = load i16, ptr %73, align 2, !tbaa !41
  %716 = sext i16 %715 to i32
  %717 = mul nsw i32 %714, %716
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds double, ptr %713, i64 %718
  store ptr %719, ptr %80, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #8
  store i32 0, ptr %81, align 4, !tbaa !50
  br label %720

720:                                              ; preds = %775, %712
  %721 = load i32, ptr %81, align 4, !tbaa !50
  %722 = load i16, ptr %73, align 2, !tbaa !41
  %723 = sext i16 %722 to i32
  %724 = icmp slt i32 %721, %723
  br i1 %724, label %726, label %725

725:                                              ; preds = %720
  store i32 35, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %778

726:                                              ; preds = %720
  %727 = load ptr, ptr %80, align 8, !tbaa !5
  %728 = load i32, ptr %81, align 4, !tbaa !50
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds double, ptr %727, i64 %729
  %731 = load double, ptr %730, align 8, !tbaa !52
  %732 = fptrunc double %731 to float
  %733 = call noundef signext i8 @_Z8near_onef(float noundef %732)
  %734 = icmp ne i8 %733, 0
  br i1 %734, label %735, label %774

735:                                              ; preds = %726
  %736 = load i32, ptr %75, align 4, !tbaa !50
  %737 = sub nsw i32 %736, 3
  store i32 %737, ptr %75, align 4, !tbaa !50
  %738 = load i32, ptr %76, align 4, !tbaa !50
  %739 = sub nsw i32 %738, 5
  store i32 %739, ptr %76, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %740 = load i32, ptr %81, align 4, !tbaa !50
  %741 = mul nsw i32 %740, 5
  %742 = sdiv i32 %741, 3
  %743 = sub nsw i32 %742, 3
  store i32 %743, ptr %82, align 4, !tbaa !50
  %744 = load i32, ptr %81, align 4, !tbaa !50
  %745 = sub nsw i32 %744, 2
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %746
  store i8 1, ptr %747, align 1, !tbaa !38
  %748 = load i32, ptr %81, align 4, !tbaa !50
  %749 = sub nsw i32 %748, 1
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %750
  store i8 1, ptr %751, align 1, !tbaa !38
  %752 = load i32, ptr %81, align 4, !tbaa !50
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %753
  store i8 1, ptr %754, align 1, !tbaa !38
  %755 = load i32, ptr %82, align 4, !tbaa !50
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %756
  store i8 1, ptr %757, align 1, !tbaa !38
  %758 = load i32, ptr %82, align 4, !tbaa !50
  %759 = add nsw i32 %758, 1
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %760
  store i8 1, ptr %761, align 1, !tbaa !38
  %762 = load i32, ptr %82, align 4, !tbaa !50
  %763 = add nsw i32 %762, 2
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %764
  store i8 1, ptr %765, align 1, !tbaa !38
  %766 = load i32, ptr %82, align 4, !tbaa !50
  %767 = add nsw i32 %766, 3
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %768
  store i8 1, ptr %769, align 1, !tbaa !38
  %770 = load i32, ptr %82, align 4, !tbaa !50
  %771 = add nsw i32 %770, 4
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %772
  store i8 1, ptr %773, align 1, !tbaa !38
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  br label %774

774:                                              ; preds = %735, %726
  br label %775

775:                                              ; preds = %774
  %776 = load i32, ptr %81, align 4, !tbaa !50
  %777 = add nsw i32 %776, 1
  store i32 %777, ptr %81, align 4, !tbaa !50
  br label %720, !llvm.loop !93

778:                                              ; preds = %725
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  br label %779

779:                                              ; preds = %778, %711
  %780 = load i32, ptr %79, align 4, !tbaa !50
  %781 = add nsw i32 %780, 1
  store i32 %781, ptr %79, align 4, !tbaa !50
  br label %687, !llvm.loop !94

782:                                              ; preds = %692
  %783 = load i32, ptr %75, align 4, !tbaa !50
  %784 = zext i32 %783 to i64
  %785 = call ptr @llvm.stacksave.p0()
  store ptr %785, ptr %83, align 8
  %786 = alloca i32, i64 %784, align 16
  store i64 %784, ptr %84, align 8
  %787 = load i32, ptr %76, align 4, !tbaa !50
  %788 = zext i32 %787 to i64
  %789 = alloca i32, i64 %788, align 16
  store i64 %788, ptr %85, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #8
  store i32 0, ptr %86, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #8
  store i32 0, ptr %87, align 4, !tbaa !50
  br label %790

790:                                              ; preds = %821, %782
  %791 = load i32, ptr %87, align 4, !tbaa !50
  %792 = load i16, ptr %73, align 2, !tbaa !41
  %793 = sext i16 %792 to i32
  %794 = icmp slt i32 %791, %793
  br i1 %794, label %796, label %795

795:                                              ; preds = %790
  store i32 38, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %824

796:                                              ; preds = %790
  %797 = load i32, ptr %87, align 4, !tbaa !50
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %798
  %800 = load i8, ptr %799, align 1, !tbaa !38
  %801 = icmp ne i8 %800, 0
  br i1 %801, label %820, label %802

802:                                              ; preds = %796
  %803 = load i32, ptr %86, align 4, !tbaa !50
  %804 = load i32, ptr %75, align 4, !tbaa !50
  %805 = icmp slt i32 %803, %804
  br i1 %805, label %813, label %806

806:                                              ; preds = %802
  %807 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.34)
          to label %808 unwind label %809

808:                                              ; preds = %806
  br label %813

809:                                              ; preds = %806
  %810 = landingpad { ptr, i32 }
          cleanup
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %8, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %1359

813:                                              ; preds = %808, %802
  %814 = load i32, ptr %87, align 4, !tbaa !50
  %815 = load i32, ptr %86, align 4, !tbaa !50
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds i32, ptr %786, i64 %816
  store i32 %814, ptr %817, align 4, !tbaa !50
  %818 = load i32, ptr %86, align 4, !tbaa !50
  %819 = add nsw i32 %818, 1
  store i32 %819, ptr %86, align 4, !tbaa !50
  br label %820

820:                                              ; preds = %813, %796
  br label %821

821:                                              ; preds = %820
  %822 = load i32, ptr %87, align 4, !tbaa !50
  %823 = add nsw i32 %822, 1
  store i32 %823, ptr %87, align 4, !tbaa !50
  br label %790, !llvm.loop !95

824:                                              ; preds = %795
  store i32 0, ptr %86, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #8
  store i32 0, ptr %88, align 4, !tbaa !50
  br label %825

825:                                              ; preds = %856, %824
  %826 = load i32, ptr %88, align 4, !tbaa !50
  %827 = load i16, ptr %72, align 2, !tbaa !41
  %828 = sext i16 %827 to i32
  %829 = icmp slt i32 %826, %828
  br i1 %829, label %831, label %830

830:                                              ; preds = %825
  store i32 41, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  br label %859

831:                                              ; preds = %825
  %832 = load i32, ptr %88, align 4, !tbaa !50
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %833
  %835 = load i8, ptr %834, align 1, !tbaa !38
  %836 = icmp ne i8 %835, 0
  br i1 %836, label %855, label %837

837:                                              ; preds = %831
  %838 = load i32, ptr %86, align 4, !tbaa !50
  %839 = load i32, ptr %76, align 4, !tbaa !50
  %840 = icmp slt i32 %838, %839
  br i1 %840, label %848, label %841

841:                                              ; preds = %837
  %842 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.34)
          to label %843 unwind label %844

843:                                              ; preds = %841
  br label %848

844:                                              ; preds = %841
  %845 = landingpad { ptr, i32 }
          cleanup
  %846 = extractvalue { ptr, i32 } %845, 0
  store ptr %846, ptr %8, align 8
  %847 = extractvalue { ptr, i32 } %845, 1
  store i32 %847, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  br label %1359

848:                                              ; preds = %843, %837
  %849 = load i32, ptr %88, align 4, !tbaa !50
  %850 = load i32, ptr %86, align 4, !tbaa !50
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds i32, ptr %789, i64 %851
  store i32 %849, ptr %852, align 4, !tbaa !50
  %853 = load i32, ptr %86, align 4, !tbaa !50
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr %86, align 4, !tbaa !50
  br label %855

855:                                              ; preds = %848, %831
  br label %856

856:                                              ; preds = %855
  %857 = load i32, ptr %88, align 4, !tbaa !50
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr %88, align 4, !tbaa !50
  br label %825, !llvm.loop !96

859:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #8
  store i32 0, ptr %89, align 4, !tbaa !50
  br label %860

860:                                              ; preds = %911, %859
  %861 = load i32, ptr %89, align 4, !tbaa !50
  %862 = load i32, ptr %75, align 4, !tbaa !50
  %863 = icmp slt i32 %861, %862
  br i1 %863, label %865, label %864

864:                                              ; preds = %860
  store i32 44, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  br label %914

865:                                              ; preds = %860
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #8
  %866 = load i32, ptr %89, align 4, !tbaa !50
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds i32, ptr %786, i64 %867
  %869 = load i32, ptr %868, align 4, !tbaa !50
  store i32 %869, ptr %90, align 4, !tbaa !50
  %870 = load ptr, ptr @g_qpoases, align 8, !tbaa !5
  %871 = load i32, ptr %90, align 4, !tbaa !50
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds double, ptr %870, i64 %872
  %874 = load double, ptr %873, align 8, !tbaa !52
  %875 = load ptr, ptr @g_red, align 8, !tbaa !5
  %876 = load i32, ptr %89, align 4, !tbaa !50
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds double, ptr %875, i64 %877
  store double %874, ptr %878, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #8
  store i32 0, ptr %91, align 4, !tbaa !50
  br label %879

879:                                              ; preds = %907, %865
  %880 = load i32, ptr %91, align 4, !tbaa !50
  %881 = load i32, ptr %75, align 4, !tbaa !50
  %882 = icmp slt i32 %880, %881
  br i1 %882, label %884, label %883

883:                                              ; preds = %879
  store i32 47, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  br label %910

884:                                              ; preds = %879
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #8
  %885 = load i32, ptr %91, align 4, !tbaa !50
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds i32, ptr %786, i64 %886
  %888 = load i32, ptr %887, align 4, !tbaa !50
  store i32 %888, ptr %92, align 4, !tbaa !50
  %889 = load ptr, ptr @H_qpoases, align 8, !tbaa !5
  %890 = load i32, ptr %90, align 4, !tbaa !50
  %891 = load i16, ptr %73, align 2, !tbaa !41
  %892 = sext i16 %891 to i32
  %893 = mul nsw i32 %890, %892
  %894 = load i32, ptr %92, align 4, !tbaa !50
  %895 = add nsw i32 %893, %894
  %896 = sext i32 %895 to i64
  %897 = getelementptr inbounds double, ptr %889, i64 %896
  %898 = load double, ptr %897, align 8, !tbaa !52
  %899 = load ptr, ptr @H_red, align 8, !tbaa !5
  %900 = load i32, ptr %89, align 4, !tbaa !50
  %901 = load i32, ptr %75, align 4, !tbaa !50
  %902 = mul nsw i32 %900, %901
  %903 = load i32, ptr %91, align 4, !tbaa !50
  %904 = add nsw i32 %902, %903
  %905 = sext i32 %904 to i64
  %906 = getelementptr inbounds double, ptr %899, i64 %905
  store double %898, ptr %906, align 8, !tbaa !52
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #8
  br label %907

907:                                              ; preds = %884
  %908 = load i32, ptr %91, align 4, !tbaa !50
  %909 = add nsw i32 %908, 1
  store i32 %909, ptr %91, align 4, !tbaa !50
  br label %879, !llvm.loop !97

910:                                              ; preds = %883
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  br label %911

911:                                              ; preds = %910
  %912 = load i32, ptr %89, align 4, !tbaa !50
  %913 = add nsw i32 %912, 1
  store i32 %913, ptr %89, align 4, !tbaa !50
  br label %860, !llvm.loop !98

914:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #8
  store i32 0, ptr %93, align 4, !tbaa !50
  br label %915

915:                                              ; preds = %958, %914
  %916 = load i32, ptr %93, align 4, !tbaa !50
  %917 = load i32, ptr %76, align 4, !tbaa !50
  %918 = icmp slt i32 %916, %917
  br i1 %918, label %920, label %919

919:                                              ; preds = %915
  store i32 50, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  br label %961

920:                                              ; preds = %915
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #8
  store i32 0, ptr %94, align 4, !tbaa !50
  br label %921

921:                                              ; preds = %954, %920
  %922 = load i32, ptr %94, align 4, !tbaa !50
  %923 = load i32, ptr %75, align 4, !tbaa !50
  %924 = icmp slt i32 %922, %923
  br i1 %924, label %926, label %925

925:                                              ; preds = %921
  store i32 53, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #8
  br label %957

926:                                              ; preds = %921
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #8
  %927 = load ptr, ptr @A_qpoases, align 8, !tbaa !5
  %928 = load i16, ptr %73, align 2, !tbaa !41
  %929 = sext i16 %928 to i32
  %930 = load i32, ptr %93, align 4, !tbaa !50
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds i32, ptr %789, i64 %931
  %933 = load i32, ptr %932, align 4, !tbaa !50
  %934 = mul nsw i32 %929, %933
  %935 = load i32, ptr %94, align 4, !tbaa !50
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds i32, ptr %786, i64 %936
  %938 = load i32, ptr %937, align 4, !tbaa !50
  %939 = add nsw i32 %934, %938
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds double, ptr %927, i64 %940
  %942 = load double, ptr %941, align 8, !tbaa !52
  %943 = fptrunc double %942 to float
  store float %943, ptr %95, align 4, !tbaa !14
  %944 = load float, ptr %95, align 4, !tbaa !14
  %945 = fpext float %944 to double
  %946 = load ptr, ptr @A_red, align 8, !tbaa !5
  %947 = load i32, ptr %93, align 4, !tbaa !50
  %948 = load i32, ptr %75, align 4, !tbaa !50
  %949 = mul nsw i32 %947, %948
  %950 = load i32, ptr %94, align 4, !tbaa !50
  %951 = add nsw i32 %949, %950
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds double, ptr %946, i64 %952
  store double %945, ptr %953, align 8, !tbaa !52
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #8
  br label %954

954:                                              ; preds = %926
  %955 = load i32, ptr %94, align 4, !tbaa !50
  %956 = add nsw i32 %955, 1
  store i32 %956, ptr %94, align 4, !tbaa !50
  br label %921, !llvm.loop !99

957:                                              ; preds = %925
  br label %958

958:                                              ; preds = %957
  %959 = load i32, ptr %93, align 4, !tbaa !50
  %960 = add nsw i32 %959, 1
  store i32 %960, ptr %93, align 4, !tbaa !50
  br label %915, !llvm.loop !100

961:                                              ; preds = %919
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #8
  store i32 0, ptr %96, align 4, !tbaa !50
  br label %962

962:                                              ; preds = %990, %961
  %963 = load i32, ptr %96, align 4, !tbaa !50
  %964 = load i32, ptr %76, align 4, !tbaa !50
  %965 = icmp slt i32 %963, %964
  br i1 %965, label %967, label %966

966:                                              ; preds = %962
  store i32 56, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #8
  br label %993

967:                                              ; preds = %962
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #8
  %968 = load i32, ptr %96, align 4, !tbaa !50
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds i32, ptr %789, i64 %969
  %971 = load i32, ptr %970, align 4, !tbaa !50
  store i32 %971, ptr %97, align 4, !tbaa !50
  %972 = load ptr, ptr @ub_qpoases, align 8, !tbaa !5
  %973 = load i32, ptr %97, align 4, !tbaa !50
  %974 = sext i32 %973 to i64
  %975 = getelementptr inbounds double, ptr %972, i64 %974
  %976 = load double, ptr %975, align 8, !tbaa !52
  %977 = load ptr, ptr @ub_red, align 8, !tbaa !5
  %978 = load i32, ptr %96, align 4, !tbaa !50
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds double, ptr %977, i64 %979
  store double %976, ptr %980, align 8, !tbaa !52
  %981 = load ptr, ptr @lb_qpoases, align 8, !tbaa !5
  %982 = load i32, ptr %97, align 4, !tbaa !50
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds double, ptr %981, i64 %983
  %985 = load double, ptr %984, align 8, !tbaa !52
  %986 = load ptr, ptr @lb_red, align 8, !tbaa !5
  %987 = load i32, ptr %96, align 4, !tbaa !50
  %988 = sext i32 %987 to i64
  %989 = getelementptr inbounds double, ptr %986, i64 %988
  store double %985, ptr %989, align 8, !tbaa !52
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  br label %990

990:                                              ; preds = %967
  %991 = load i32, ptr %96, align 4, !tbaa !50
  %992 = add nsw i32 %991, 1
  store i32 %992, ptr %96, align 4, !tbaa !50
  br label %962, !llvm.loop !101

993:                                              ; preds = %966
  %994 = load ptr, ptr %3, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.update_data_t, ptr %994, i32 0, i32 16
  %996 = load i32, ptr %995, align 8, !tbaa !51
  %997 = icmp eq i32 %996, 0
  br i1 %997, label %998, label %1088

998:                                              ; preds = %993
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #8
  invoke void @_ZN5TimerC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %98)
          to label %999 unwind label %1024

999:                                              ; preds = %998
  call void @llvm.lifetime.start.p0(i64 1064, ptr %99) #8
  %1000 = load i32, ptr %75, align 4, !tbaa !50
  %1001 = load i32, ptr %76, align 4, !tbaa !50
  invoke void @_ZN7qpOASES8QProblemC1EiiNS_11HessianTypeENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %99, i32 noundef %1000, i32 noundef %1001, i32 noundef 6, i32 noundef 1)
          to label %1002 unwind label %1028

1002:                                             ; preds = %999
  call void @llvm.lifetime.start.p0(i64 224, ptr %100) #8
  invoke void @_ZN7qpOASES7OptionsC1Ev(ptr noundef nonnull align 8 dereferenceable(220) %100)
          to label %1003 unwind label %1032

1003:                                             ; preds = %1002
  %1004 = invoke noundef i32 @_ZN7qpOASES7Options8setToMPCEv(ptr noundef nonnull align 8 dereferenceable(220) %100)
          to label %1005 unwind label %1036

1005:                                             ; preds = %1003
  %1006 = getelementptr inbounds %"class.qpOASES::Options", ptr %100, i32 0, i32 0
  store i32 0, ptr %1006, align 8, !tbaa !102
  %1007 = invoke noundef i32 @_ZN7qpOASES9QProblemB10setOptionsERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(800) %99, ptr noundef nonnull align 8 dereferenceable(220) %100)
          to label %1008 unwind label %1036

1008:                                             ; preds = %1005
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #8
  %1009 = load ptr, ptr @H_red, align 8, !tbaa !5
  %1010 = load ptr, ptr @g_red, align 8, !tbaa !5
  %1011 = load ptr, ptr @A_red, align 8, !tbaa !5
  %1012 = load ptr, ptr @lb_red, align 8, !tbaa !5
  %1013 = load ptr, ptr @ub_red, align 8, !tbaa !5
  %1014 = invoke noundef i32 @_ZN7qpOASES8QProblem4initEPKdS2_S2_S2_S2_S2_S2_RiPdS2_S2_PKNS_6BoundsEPKNS_11ConstraintsES2_(ptr noundef nonnull align 8 dereferenceable(1064) %99, ptr noundef %1009, ptr noundef %1010, ptr noundef %1011, ptr noundef null, ptr noundef null, ptr noundef %1012, ptr noundef %1013, ptr noundef nonnull align 4 dereferenceable(4) %74, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1015 unwind label %1040

1015:                                             ; preds = %1008
  store i32 %1014, ptr %101, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #8
  %1016 = load ptr, ptr @q_red, align 8, !tbaa !5
  %1017 = invoke noundef i32 @_ZNK7qpOASES9QProblemB17getPrimalSolutionEPd(ptr noundef nonnull align 8 dereferenceable(800) %99, ptr noundef %1016)
          to label %1018 unwind label %1044

1018:                                             ; preds = %1015
  store i32 %1017, ptr %102, align 4, !tbaa !50
  %1019 = load i32, ptr %102, align 4, !tbaa !50
  %1020 = icmp ne i32 %1019, 0
  br i1 %1020, label %1021, label %1048

1021:                                             ; preds = %1018
  %1022 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.35)
          to label %1023 unwind label %1044

1023:                                             ; preds = %1021
  br label %1048

1024:                                             ; preds = %998
  %1025 = landingpad { ptr, i32 }
          cleanup
  %1026 = extractvalue { ptr, i32 } %1025, 0
  store ptr %1026, ptr %8, align 8
  %1027 = extractvalue { ptr, i32 } %1025, 1
  store i32 %1027, ptr %9, align 4
  br label %1087

1028:                                             ; preds = %999
  %1029 = landingpad { ptr, i32 }
          cleanup
  %1030 = extractvalue { ptr, i32 } %1029, 0
  store ptr %1030, ptr %8, align 8
  %1031 = extractvalue { ptr, i32 } %1029, 1
  store i32 %1031, ptr %9, align 4
  br label %1086

1032:                                             ; preds = %1002
  %1033 = landingpad { ptr, i32 }
          cleanup
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %8, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, ptr %9, align 4
  br label %1085

1036:                                             ; preds = %1005, %1003
  %1037 = landingpad { ptr, i32 }
          cleanup
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %8, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %9, align 4
  br label %1084

1040:                                             ; preds = %1008
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %8, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %9, align 4
  br label %1083

1044:                                             ; preds = %1021, %1015
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %8, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #8
  br label %1083

1048:                                             ; preds = %1023, %1018
  store i32 0, ptr %86, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #8
  store i32 0, ptr %103, align 4, !tbaa !50
  br label %1049

1049:                                             ; preds = %1079, %1048
  %1050 = load i32, ptr %103, align 4, !tbaa !50
  %1051 = load i16, ptr %73, align 2, !tbaa !41
  %1052 = sext i16 %1051 to i32
  %1053 = icmp slt i32 %1050, %1052
  br i1 %1053, label %1055, label %1054

1054:                                             ; preds = %1049
  store i32 59, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #8
  br label %1082

1055:                                             ; preds = %1049
  %1056 = load i32, ptr %103, align 4, !tbaa !50
  %1057 = sext i32 %1056 to i64
  %1058 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %1057
  %1059 = load i8, ptr %1058, align 1, !tbaa !38
  %1060 = icmp ne i8 %1059, 0
  br i1 %1060, label %1061, label %1066

1061:                                             ; preds = %1055
  %1062 = load ptr, ptr @q_soln, align 8, !tbaa !5
  %1063 = load i32, ptr %103, align 4, !tbaa !50
  %1064 = sext i32 %1063 to i64
  %1065 = getelementptr inbounds double, ptr %1062, i64 %1064
  store double 0.000000e+00, ptr %1065, align 8, !tbaa !52
  br label %1078

1066:                                             ; preds = %1055
  %1067 = load ptr, ptr @q_red, align 8, !tbaa !5
  %1068 = load i32, ptr %86, align 4, !tbaa !50
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds double, ptr %1067, i64 %1069
  %1071 = load double, ptr %1070, align 8, !tbaa !52
  %1072 = load ptr, ptr @q_soln, align 8, !tbaa !5
  %1073 = load i32, ptr %103, align 4, !tbaa !50
  %1074 = sext i32 %1073 to i64
  %1075 = getelementptr inbounds double, ptr %1072, i64 %1074
  store double %1071, ptr %1075, align 8, !tbaa !52
  %1076 = load i32, ptr %86, align 4, !tbaa !50
  %1077 = add nsw i32 %1076, 1
  store i32 %1077, ptr %86, align 4, !tbaa !50
  br label %1078

1078:                                             ; preds = %1066, %1061
  br label %1079

1079:                                             ; preds = %1078
  %1080 = load i32, ptr %103, align 4, !tbaa !50
  %1081 = add nsw i32 %1080, 1
  store i32 %1081, ptr %103, align 4, !tbaa !50
  br label %1049, !llvm.loop !107

1082:                                             ; preds = %1054
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #8
  call void @_ZN7qpOASES7OptionsD1Ev(ptr noundef nonnull align 8 dereferenceable(220) %100) #8
  call void @llvm.lifetime.end.p0(i64 224, ptr %100) #8
  call void @_ZN7qpOASES8QProblemD1Ev(ptr noundef nonnull align 8 dereferenceable(1064) %99) #8
  call void @llvm.lifetime.end.p0(i64 1064, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #8
  br label %1357

1083:                                             ; preds = %1044, %1040
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #8
  br label %1084

1084:                                             ; preds = %1083, %1036
  call void @_ZN7qpOASES7OptionsD1Ev(ptr noundef nonnull align 8 dereferenceable(220) %100) #8
  br label %1085

1085:                                             ; preds = %1084, %1032
  call void @llvm.lifetime.end.p0(i64 224, ptr %100) #8
  call void @_ZN7qpOASES8QProblemD1Ev(ptr noundef nonnull align 8 dereferenceable(1064) %99) #8
  br label %1086

1086:                                             ; preds = %1085, %1028
  call void @llvm.lifetime.end.p0(i64 1064, ptr %99) #8
  br label %1087

1087:                                             ; preds = %1086, %1024
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #8
  br label %1359

1088:                                             ; preds = %993
  call void @llvm.lifetime.start.p0(i64 968, ptr %104) #8
  %1089 = load i32, ptr %75, align 4, !tbaa !50
  %1090 = sext i32 %1089 to i64
  %1091 = load i32, ptr %76, align 4, !tbaa !50
  %1092 = sext i32 %1091 to i64
  invoke void @_ZN9QpProblemIdEC2Ellb(ptr noundef nonnull align 8 dereferenceable(962) %104, i64 noundef %1090, i64 noundef %1092, i1 noundef zeroext true)
          to label %1093 unwind label %1102

1093:                                             ; preds = %1088
  call void @llvm.lifetime.start.p0(i64 24, ptr %105) #8
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %105, ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %1094 unwind label %1106

1094:                                             ; preds = %1093
  %1095 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 1
  %1096 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1095, ptr noundef nonnull align 8 dereferenceable(24) %105) #8
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %105) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %105) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #8
  store i32 0, ptr %106, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #8
  store i32 0, ptr %107, align 4, !tbaa !50
  br label %1097

1097:                                             ; preds = %1138, %1094
  %1098 = load i32, ptr %107, align 4, !tbaa !50
  %1099 = load i32, ptr %76, align 4, !tbaa !50
  %1100 = icmp slt i32 %1098, %1099
  br i1 %1100, label %1110, label %1101

1101:                                             ; preds = %1097
  store i32 62, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #8
  br label %1141

1102:                                             ; preds = %1088
  %1103 = landingpad { ptr, i32 }
          cleanup
  %1104 = extractvalue { ptr, i32 } %1103, 0
  store ptr %1104, ptr %8, align 8
  %1105 = extractvalue { ptr, i32 } %1103, 1
  store i32 %1105, ptr %9, align 4
  br label %1356

1106:                                             ; preds = %1093
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %8, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %105) #8
  br label %1355

1110:                                             ; preds = %1097
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #8
  store i32 0, ptr %108, align 4, !tbaa !50
  br label %1111

1111:                                             ; preds = %1130, %1110
  %1112 = load i32, ptr %108, align 4, !tbaa !50
  %1113 = load i32, ptr %75, align 4, !tbaa !50
  %1114 = icmp slt i32 %1112, %1113
  br i1 %1114, label %1116, label %1115

1115:                                             ; preds = %1111
  store i32 65, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  br label %1137

1116:                                             ; preds = %1111
  %1117 = load ptr, ptr @A_red, align 8, !tbaa !5
  %1118 = load i32, ptr %106, align 4, !tbaa !50
  %1119 = add nsw i32 %1118, 1
  store i32 %1119, ptr %106, align 4, !tbaa !50
  %1120 = sext i32 %1118 to i64
  %1121 = getelementptr inbounds double, ptr %1117, i64 %1120
  %1122 = load double, ptr %1121, align 8, !tbaa !52
  %1123 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 1
  %1124 = load i32, ptr %107, align 4, !tbaa !50
  %1125 = sext i32 %1124 to i64
  %1126 = load i32, ptr %108, align 4, !tbaa !50
  %1127 = sext i32 %1126 to i64
  %1128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %1123, i64 noundef %1125, i64 noundef %1127)
          to label %1129 unwind label %1133

1129:                                             ; preds = %1116
  store double %1122, ptr %1128, align 8, !tbaa !52
  br label %1130

1130:                                             ; preds = %1129
  %1131 = load i32, ptr %108, align 4, !tbaa !50
  %1132 = add nsw i32 %1131, 1
  store i32 %1132, ptr %108, align 4, !tbaa !50
  br label %1111, !llvm.loop !108

1133:                                             ; preds = %1116
  %1134 = landingpad { ptr, i32 }
          cleanup
  %1135 = extractvalue { ptr, i32 } %1134, 0
  store ptr %1135, ptr %8, align 8
  %1136 = extractvalue { ptr, i32 } %1134, 1
  store i32 %1136, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #8
  br label %1354

1137:                                             ; preds = %1115
  br label %1138

1138:                                             ; preds = %1137
  %1139 = load i32, ptr %107, align 4, !tbaa !50
  %1140 = add nsw i32 %1139, 1
  store i32 %1140, ptr %107, align 4, !tbaa !50
  br label %1097, !llvm.loop !109

1141:                                             ; preds = %1101
  call void @llvm.lifetime.start.p0(i64 24, ptr %109) #8
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %109, ptr noundef nonnull align 4 dereferenceable(4) %75, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %1142 unwind label %1150

1142:                                             ; preds = %1141
  %1143 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 2
  %1144 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1143, ptr noundef nonnull align 8 dereferenceable(24) %109) #8
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %109) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %109) #8
  store i32 0, ptr %106, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #8
  store i32 0, ptr %110, align 4, !tbaa !50
  br label %1145

1145:                                             ; preds = %1182, %1142
  %1146 = load i32, ptr %110, align 4, !tbaa !50
  %1147 = load i32, ptr %75, align 4, !tbaa !50
  %1148 = icmp slt i32 %1146, %1147
  br i1 %1148, label %1154, label %1149

1149:                                             ; preds = %1145
  store i32 68, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  br label %1185

1150:                                             ; preds = %1141
  %1151 = landingpad { ptr, i32 }
          cleanup
  %1152 = extractvalue { ptr, i32 } %1151, 0
  store ptr %1152, ptr %8, align 8
  %1153 = extractvalue { ptr, i32 } %1151, 1
  store i32 %1153, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %109) #8
  br label %1354

1154:                                             ; preds = %1145
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #8
  store i32 0, ptr %111, align 4, !tbaa !50
  br label %1155

1155:                                             ; preds = %1174, %1154
  %1156 = load i32, ptr %111, align 4, !tbaa !50
  %1157 = load i32, ptr %75, align 4, !tbaa !50
  %1158 = icmp slt i32 %1156, %1157
  br i1 %1158, label %1160, label %1159

1159:                                             ; preds = %1155
  store i32 71, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #8
  br label %1181

1160:                                             ; preds = %1155
  %1161 = load ptr, ptr @H_red, align 8, !tbaa !5
  %1162 = load i32, ptr %106, align 4, !tbaa !50
  %1163 = add nsw i32 %1162, 1
  store i32 %1163, ptr %106, align 4, !tbaa !50
  %1164 = sext i32 %1162 to i64
  %1165 = getelementptr inbounds double, ptr %1161, i64 %1164
  %1166 = load double, ptr %1165, align 8, !tbaa !52
  %1167 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 2
  %1168 = load i32, ptr %110, align 4, !tbaa !50
  %1169 = sext i32 %1168 to i64
  %1170 = load i32, ptr %111, align 4, !tbaa !50
  %1171 = sext i32 %1170 to i64
  %1172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %1167, i64 noundef %1169, i64 noundef %1171)
          to label %1173 unwind label %1177

1173:                                             ; preds = %1160
  store double %1166, ptr %1172, align 8, !tbaa !52
  br label %1174

1174:                                             ; preds = %1173
  %1175 = load i32, ptr %111, align 4, !tbaa !50
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr %111, align 4, !tbaa !50
  br label %1155, !llvm.loop !110

1177:                                             ; preds = %1160
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %8, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  br label %1354

1181:                                             ; preds = %1159
  br label %1182

1182:                                             ; preds = %1181
  %1183 = load i32, ptr %110, align 4, !tbaa !50
  %1184 = add nsw i32 %1183, 1
  store i32 %1184, ptr %110, align 4, !tbaa !50
  br label %1145, !llvm.loop !111

1185:                                             ; preds = %1149
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #8
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2IiEERKT_(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %1186 unwind label %1194

1186:                                             ; preds = %1185
  %1187 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 7
  %1188 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %1187, ptr noundef nonnull align 8 dereferenceable(16) %112) #8
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #8
  store i32 0, ptr %113, align 4, !tbaa !50
  br label %1189

1189:                                             ; preds = %1209, %1186
  %1190 = load i32, ptr %113, align 4, !tbaa !50
  %1191 = load i32, ptr %75, align 4, !tbaa !50
  %1192 = icmp slt i32 %1190, %1191
  br i1 %1192, label %1198, label %1193

1193:                                             ; preds = %1189
  store i32 74, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #8
  br label %1216

1194:                                             ; preds = %1185
  %1195 = landingpad { ptr, i32 }
          cleanup
  %1196 = extractvalue { ptr, i32 } %1195, 0
  store ptr %1196, ptr %8, align 8
  %1197 = extractvalue { ptr, i32 } %1195, 1
  store i32 %1197, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #8
  br label %1354

1198:                                             ; preds = %1189
  %1199 = load ptr, ptr @g_red, align 8, !tbaa !5
  %1200 = load i32, ptr %113, align 4, !tbaa !50
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds double, ptr %1199, i64 %1201
  %1203 = load double, ptr %1202, align 8, !tbaa !52
  %1204 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 7
  %1205 = load i32, ptr %113, align 4, !tbaa !50
  %1206 = sext i32 %1205 to i64
  %1207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %1204, i64 noundef %1206)
          to label %1208 unwind label %1212

1208:                                             ; preds = %1198
  store double %1203, ptr %1207, align 8, !tbaa !52
  br label %1209

1209:                                             ; preds = %1208
  %1210 = load i32, ptr %113, align 4, !tbaa !50
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr %113, align 4, !tbaa !50
  br label %1189, !llvm.loop !112

1212:                                             ; preds = %1198
  %1213 = landingpad { ptr, i32 }
          cleanup
  %1214 = extractvalue { ptr, i32 } %1213, 0
  store ptr %1214, ptr %8, align 8
  %1215 = extractvalue { ptr, i32 } %1213, 1
  store i32 %1215, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #8
  br label %1354

1216:                                             ; preds = %1193
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #8
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2IiEERKT_(ptr noundef nonnull align 8 dereferenceable(16) %114, ptr noundef nonnull align 4 dereferenceable(4) %76)
          to label %1217 unwind label %1225

1217:                                             ; preds = %1216
  %1218 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 6
  %1219 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %1218, ptr noundef nonnull align 8 dereferenceable(16) %114) #8
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %114) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #8
  store i32 0, ptr %115, align 4, !tbaa !50
  br label %1220

1220:                                             ; preds = %1240, %1217
  %1221 = load i32, ptr %115, align 4, !tbaa !50
  %1222 = load i32, ptr %76, align 4, !tbaa !50
  %1223 = icmp slt i32 %1221, %1222
  br i1 %1223, label %1229, label %1224

1224:                                             ; preds = %1220
  store i32 77, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #8
  br label %1247

1225:                                             ; preds = %1216
  %1226 = landingpad { ptr, i32 }
          cleanup
  %1227 = extractvalue { ptr, i32 } %1226, 0
  store ptr %1227, ptr %8, align 8
  %1228 = extractvalue { ptr, i32 } %1226, 1
  store i32 %1228, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #8
  br label %1354

1229:                                             ; preds = %1220
  %1230 = load ptr, ptr @ub_red, align 8, !tbaa !5
  %1231 = load i32, ptr %115, align 4, !tbaa !50
  %1232 = sext i32 %1231 to i64
  %1233 = getelementptr inbounds double, ptr %1230, i64 %1232
  %1234 = load double, ptr %1233, align 8, !tbaa !52
  %1235 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 6
  %1236 = load i32, ptr %115, align 4, !tbaa !50
  %1237 = sext i32 %1236 to i64
  %1238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %1235, i64 noundef %1237)
          to label %1239 unwind label %1243

1239:                                             ; preds = %1229
  store double %1234, ptr %1238, align 8, !tbaa !52
  br label %1240

1240:                                             ; preds = %1239
  %1241 = load i32, ptr %115, align 4, !tbaa !50
  %1242 = add nsw i32 %1241, 1
  store i32 %1242, ptr %115, align 4, !tbaa !50
  br label %1220, !llvm.loop !113

1243:                                             ; preds = %1229
  %1244 = landingpad { ptr, i32 }
          cleanup
  %1245 = extractvalue { ptr, i32 } %1244, 0
  store ptr %1245, ptr %8, align 8
  %1246 = extractvalue { ptr, i32 } %1244, 1
  store i32 %1246, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #8
  br label %1354

1247:                                             ; preds = %1224
  call void @llvm.lifetime.start.p0(i64 16, ptr %116) #8
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2IiEERKT_(ptr noundef nonnull align 8 dereferenceable(16) %116, ptr noundef nonnull align 4 dereferenceable(4) %76)
          to label %1248 unwind label %1256

1248:                                             ; preds = %1247
  %1249 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 5
  %1250 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %1249, ptr noundef nonnull align 8 dereferenceable(16) %116) #8
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #8
  store i32 0, ptr %117, align 4, !tbaa !50
  br label %1251

1251:                                             ; preds = %1271, %1248
  %1252 = load i32, ptr %117, align 4, !tbaa !50
  %1253 = load i32, ptr %76, align 4, !tbaa !50
  %1254 = icmp slt i32 %1252, %1253
  br i1 %1254, label %1260, label %1255

1255:                                             ; preds = %1251
  store i32 80, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #8
  br label %1278

1256:                                             ; preds = %1247
  %1257 = landingpad { ptr, i32 }
          cleanup
  %1258 = extractvalue { ptr, i32 } %1257, 0
  store ptr %1258, ptr %8, align 8
  %1259 = extractvalue { ptr, i32 } %1257, 1
  store i32 %1259, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #8
  br label %1354

1260:                                             ; preds = %1251
  %1261 = load ptr, ptr @lb_red, align 8, !tbaa !5
  %1262 = load i32, ptr %117, align 4, !tbaa !50
  %1263 = sext i32 %1262 to i64
  %1264 = getelementptr inbounds double, ptr %1261, i64 %1263
  %1265 = load double, ptr %1264, align 8, !tbaa !52
  %1266 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 5
  %1267 = load i32, ptr %117, align 4, !tbaa !50
  %1268 = sext i32 %1267 to i64
  %1269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %1266, i64 noundef %1268)
          to label %1270 unwind label %1274

1270:                                             ; preds = %1260
  store double %1265, ptr %1269, align 8, !tbaa !52
  br label %1271

1271:                                             ; preds = %1270
  %1272 = load i32, ptr %117, align 4, !tbaa !50
  %1273 = add nsw i32 %1272, 1
  store i32 %1273, ptr %117, align 4, !tbaa !50
  br label %1251, !llvm.loop !114

1274:                                             ; preds = %1260
  %1275 = landingpad { ptr, i32 }
          cleanup
  %1276 = extractvalue { ptr, i32 } %1275, 0
  store ptr %1276, ptr %8, align 8
  %1277 = extractvalue { ptr, i32 } %1275, 1
  store i32 %1277, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #8
  br label %1354

1278:                                             ; preds = %1255
  %1279 = load ptr, ptr %3, align 8, !tbaa !5
  %1280 = getelementptr inbounds %struct.update_data_t, ptr %1279, i32 0, i32 13
  %1281 = load double, ptr %1280, align 8, !tbaa !54
  %1282 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 0
  %1283 = getelementptr inbounds %struct.QpProblemSettings, ptr %1282, i32 0, i32 2
  store double %1281, ptr %1283, align 8, !tbaa !55
  %1284 = load ptr, ptr %3, align 8, !tbaa !5
  %1285 = getelementptr inbounds %struct.update_data_t, ptr %1284, i32 0, i32 14
  %1286 = load double, ptr %1285, align 8, !tbaa !82
  %1287 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 0
  %1288 = getelementptr inbounds %struct.QpProblemSettings, ptr %1287, i32 0, i32 3
  store double %1286, ptr %1288, align 8, !tbaa !83
  %1289 = load ptr, ptr %3, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.update_data_t, ptr %1289, i32 0, i32 15
  %1291 = load double, ptr %1290, align 8, !tbaa !84
  %1292 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 0
  %1293 = getelementptr inbounds %struct.QpProblemSettings, ptr %1292, i32 0, i32 8
  store double %1291, ptr %1293, align 8, !tbaa !85
  %1294 = load ptr, ptr %3, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.update_data_t, ptr %1294, i32 0, i32 12
  %1296 = load double, ptr %1295, align 8, !tbaa !86
  %1297 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 0
  %1298 = getelementptr inbounds %struct.QpProblemSettings, ptr %1297, i32 0, i32 1
  store double %1296, ptr %1298, align 8, !tbaa !87
  %1299 = load ptr, ptr %3, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.update_data_t, ptr %1299, i32 0, i32 11
  %1301 = load i32, ptr %1300, align 8, !tbaa !88
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds %class.QpProblem, ptr %104, i32 0, i32 0
  %1304 = getelementptr inbounds %struct.QpProblemSettings, ptr %1303, i32 0, i32 0
  store i64 %1302, ptr %1304, align 8, !tbaa !89
  %1305 = load ptr, ptr %3, align 8, !tbaa !5
  %1306 = getelementptr inbounds %struct.update_data_t, ptr %1305, i32 0, i32 11
  %1307 = load i32, ptr %1306, align 8, !tbaa !88
  %1308 = sext i32 %1307 to i64
  invoke void @_ZN9QpProblemIdE12runFromDenseElbb(ptr noundef nonnull align 8 dereferenceable(962) %104, i64 noundef %1308, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1309 unwind label %1316

1309:                                             ; preds = %1278
  store i32 0, ptr %86, align 4, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #8
  store i32 0, ptr %118, align 4, !tbaa !50
  br label %1310

1310:                                             ; preds = %1350, %1309
  %1311 = load i32, ptr %118, align 4, !tbaa !50
  %1312 = load i16, ptr %73, align 2, !tbaa !41
  %1313 = sext i16 %1312 to i32
  %1314 = icmp slt i32 %1311, %1313
  br i1 %1314, label %1320, label %1315

1315:                                             ; preds = %1310
  store i32 83, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #8
  br label %1353

1316:                                             ; preds = %1278
  %1317 = landingpad { ptr, i32 }
          cleanup
  %1318 = extractvalue { ptr, i32 } %1317, 0
  store ptr %1318, ptr %8, align 8
  %1319 = extractvalue { ptr, i32 } %1317, 1
  store i32 %1319, ptr %9, align 4
  br label %1354

1320:                                             ; preds = %1310
  %1321 = load i32, ptr %118, align 4, !tbaa !50
  %1322 = sext i32 %1321 to i64
  %1323 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %1322
  %1324 = load i8, ptr %1323, align 1, !tbaa !38
  %1325 = icmp ne i8 %1324, 0
  br i1 %1325, label %1326, label %1331

1326:                                             ; preds = %1320
  %1327 = load ptr, ptr @q_soln, align 8, !tbaa !5
  %1328 = load i32, ptr %118, align 4, !tbaa !50
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds double, ptr %1327, i64 %1329
  store double 0.000000e+00, ptr %1330, align 8, !tbaa !52
  br label %1349

1331:                                             ; preds = %1320
  %1332 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN9QpProblemIdE11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(962) %104)
          to label %1333 unwind label %1345

1333:                                             ; preds = %1331
  %1334 = load i32, ptr %86, align 4, !tbaa !50
  %1335 = sext i32 %1334 to i64
  %1336 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %1332, i64 noundef %1335)
          to label %1337 unwind label %1345

1337:                                             ; preds = %1333
  %1338 = load double, ptr %1336, align 8, !tbaa !52
  %1339 = load ptr, ptr @q_soln, align 8, !tbaa !5
  %1340 = load i32, ptr %118, align 4, !tbaa !50
  %1341 = sext i32 %1340 to i64
  %1342 = getelementptr inbounds double, ptr %1339, i64 %1341
  store double %1338, ptr %1342, align 8, !tbaa !52
  %1343 = load i32, ptr %86, align 4, !tbaa !50
  %1344 = add nsw i32 %1343, 1
  store i32 %1344, ptr %86, align 4, !tbaa !50
  br label %1349

1345:                                             ; preds = %1333, %1331
  %1346 = landingpad { ptr, i32 }
          cleanup
  %1347 = extractvalue { ptr, i32 } %1346, 0
  store ptr %1347, ptr %8, align 8
  %1348 = extractvalue { ptr, i32 } %1346, 1
  store i32 %1348, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #8
  br label %1354

1349:                                             ; preds = %1337, %1326
  br label %1350

1350:                                             ; preds = %1349
  %1351 = load i32, ptr %118, align 4, !tbaa !50
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr %118, align 4, !tbaa !50
  br label %1310, !llvm.loop !115

1353:                                             ; preds = %1315
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #8
  call void @_ZN9QpProblemIdED2Ev(ptr noundef nonnull align 8 dereferenceable(962) %104) #8
  call void @llvm.lifetime.end.p0(i64 968, ptr %104) #8
  br label %1357

1354:                                             ; preds = %1345, %1316, %1274, %1256, %1243, %1225, %1212, %1194, %1177, %1150, %1133
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #8
  br label %1355

1355:                                             ; preds = %1354, %1106
  call void @_ZN9QpProblemIdED2Ev(ptr noundef nonnull align 8 dereferenceable(962) %104) #8
  br label %1356

1356:                                             ; preds = %1355, %1102
  call void @llvm.lifetime.end.p0(i64 968, ptr %104) #8
  br label %1359

1357:                                             ; preds = %1353, %1082
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #8
  %1358 = load ptr, ptr %83, align 8
  call void @llvm.stackrestore.p0(ptr %1358)
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %72) #8
  br label %1360

1359:                                             ; preds = %1356, %1087, %844, %809
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %72) #8
  br label %1395

1360:                                             ; preds = %1357, %563
  %1361 = load ptr, ptr %3, align 8, !tbaa !5
  %1362 = getelementptr inbounds %struct.update_data_t, ptr %1361, i32 0, i32 16
  %1363 = load i32, ptr %1362, align 8, !tbaa !51
  %1364 = icmp eq i32 %1363, 1
  br i1 %1364, label %1365, label %1394

1365:                                             ; preds = %1360
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #8
  store i32 0, ptr %119, align 4, !tbaa !50
  br label %1366

1366:                                             ; preds = %1386, %1365
  %1367 = load i32, ptr %119, align 4, !tbaa !50
  %1368 = load ptr, ptr %4, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.problem_setup, ptr %1368, i32 0, i32 3
  %1370 = load i32, ptr %1369, align 4, !tbaa !37
  %1371 = mul nsw i32 12, %1370
  %1372 = icmp slt i32 %1367, %1371
  br i1 %1372, label %1374, label %1373

1373:                                             ; preds = %1366
  store i32 86, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #8
  br label %1393

1374:                                             ; preds = %1366
  %1375 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN9QpProblemIdE11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(962) %61)
          to label %1376 unwind label %1389

1376:                                             ; preds = %1374
  %1377 = load i32, ptr %119, align 4, !tbaa !50
  %1378 = sext i32 %1377 to i64
  %1379 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %1375, i64 noundef %1378)
          to label %1380 unwind label %1389

1380:                                             ; preds = %1376
  %1381 = load double, ptr %1379, align 8, !tbaa !52
  %1382 = load ptr, ptr @q_soln, align 8, !tbaa !5
  %1383 = load i32, ptr %119, align 4, !tbaa !50
  %1384 = sext i32 %1383 to i64
  %1385 = getelementptr inbounds double, ptr %1382, i64 %1384
  store double %1381, ptr %1385, align 8, !tbaa !52
  br label %1386

1386:                                             ; preds = %1380
  %1387 = load i32, ptr %119, align 4, !tbaa !50
  %1388 = add nsw i32 %1387, 1
  store i32 %1388, ptr %119, align 4, !tbaa !50
  br label %1366, !llvm.loop !116

1389:                                             ; preds = %1376, %1374
  %1390 = landingpad { ptr, i32 }
          cleanup
  %1391 = extractvalue { ptr, i32 } %1390, 0
  store ptr %1391, ptr %8, align 8
  %1392 = extractvalue { ptr, i32 } %1390, 1
  store i32 %1392, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #8
  br label %1395

1393:                                             ; preds = %1373
  br label %1394

1394:                                             ; preds = %1393, %1360
  call void @_ZN9QpProblemIdED2Ev(ptr noundef nonnull align 8 dereferenceable(962) %61) #8
  call void @llvm.lifetime.end.p0(i64 968, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 60, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 52, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %5) #8
  ret void

1395:                                             ; preds = %1389, %1359, %632, %628, %624, %620, %564, %528, %515, %511, %507, %503
  call void @_ZN9QpProblemIdED2Ev(ptr noundef nonnull align 8 dereferenceable(962) %61) #8
  call void @llvm.lifetime.end.p0(i64 968, ptr %61) #8
  br label %1396

1396:                                             ; preds = %1395, %430
  call void @llvm.lifetime.end.p0(i64 60, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 52, ptr %19) #8
  br label %1397

1397:                                             ; preds = %1396, %187
  call void @llvm.lifetime.end.p0(i64 12, ptr %5) #8
  br label %1398

1398:                                             ; preds = %1397
  %1399 = load ptr, ptr %8, align 8
  %1400 = load i32, ptr %9, align 4
  %1401 = insertvalue { ptr, i32 } poison, ptr %1399, 0
  %1402 = insertvalue { ptr, i32 } %1401, i32 %1400, 1
  resume { ptr, i32 } %1402
}

declare void @_ZN10RobotState3setEPfS0_S0_S0_S0_f(ptr noundef nonnull align 16 dereferenceable(232), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, float noundef) #5

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen9DenseBaseINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEElsERKf(ptr dead_on_unwind noalias writable sret(%"struct.Eigen::CommaInitializer.248") align 8, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9QpProblemIdEC2Ellb(ptr noundef nonnull align 8 dereferenceable(962), i64 noundef, i64 noundef, i1 noundef zeroext) unnamed_addr #2 align 2

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

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

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

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

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

declare void @_ZN9QpProblemIdE12runFromDenseElbb(ptr noundef nonnull align 8 dereferenceable(962), i64 noundef, i1 noundef zeroext, i1 noundef zeroext) #5

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

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

; Function Attrs: nocallback nofree nosync nounwind willreturn
declare ptr @llvm.stacksave.p0() #6

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

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

declare void @_ZN7qpOASES7OptionsC1Ev(ptr noundef nonnull align 8 dereferenceable(220)) unnamed_addr #5

declare noundef i32 @_ZN7qpOASES7Options8setToMPCEv(ptr noundef nonnull align 8 dereferenceable(220)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN7qpOASES9QProblemB10setOptionsERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(800), ptr noundef nonnull align 8 dereferenceable(220)) #4 align 2

declare noundef i32 @_ZN7qpOASES8QProblem4initEPKdS2_S2_S2_S2_S2_S2_RiPdS2_S2_PKNS_6BoundsEPKNS_11ConstraintsES2_(ptr noundef nonnull align 8 dereferenceable(1064), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #5

declare noundef i32 @_ZNK7qpOASES9QProblemB17getPrimalSolutionEPd(ptr noundef nonnull align 8 dereferenceable(800), ptr noundef) #5

; Function Attrs: nounwind
declare void @_ZN7qpOASES7OptionsD1Ev(ptr noundef nonnull align 8 dereferenceable(220)) unnamed_addr #7

; Function Attrs: nounwind
declare void @_ZN7qpOASES8QProblemD1Ev(ptr noundef nonnull align 8 dereferenceable(1064)) unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #0 align 2

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

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

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

; Function Attrs: nocallback nofree nosync nounwind willreturn
declare void @llvm.stackrestore.p0(ptr) #6

attributes #0 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nosync nounwind willreturn }
attributes #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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, !11, i64 100}
!10 = !{!"_ZTS13update_data_t", !7, i64 0, !7, i64 12, !7, i64 24, !7, i64 40, !7, i64 52, !11, i64 100, !7, i64 104, !7, i64 152, !11, i64 1880, !7, i64 1884, !7, i64 1920, !12, i64 2920, !13, i64 2928, !13, i64 2936, !13, i64 2944, !13, i64 2952, !12, i64 2960, !11, i64 2964}
!11 = !{!"float", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = !{!11, !11, i64 0}
!15 = !{!16, !11, i64 228}
!16 = !{!"_ZTS10RobotState", !17, i64 0, !17, i64 12, !17, i64 24, !21, i64 48, !25, i64 96, !25, i64 132, !25, i64 168, !29, i64 208, !11, i64 224, !11, i64 228}
!17 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEE", !18, i64 0}
!18 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEEEE", !19, i64 0}
!19 = !{!"_ZTSN5Eigen12DenseStorageIfLi3ELi3ELi1ELi0EEE", !20, i64 0}
!20 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi3ELi0ELi0EEE", !7, i64 0}
!21 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi4ELi0ELi3ELi4EEE", !22, i64 0}
!22 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi4ELi0ELi3ELi4EEEEE", !23, i64 0}
!23 = !{!"_ZTSN5Eigen12DenseStorageIfLi12ELi3ELi4ELi0EEE", !24, i64 0}
!24 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi12ELi0ELi16EEE", !7, i64 0}
!25 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEE", !26, i64 0}
!26 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEE", !27, i64 0}
!27 = !{!"_ZTSN5Eigen12DenseStorageIfLi9ELi3ELi3ELi0EEE", !28, i64 0}
!28 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi9ELi0ELi0EEE", !7, i64 0}
!29 = !{!"_ZTSN5Eigen10QuaternionIfLi0EEE", !30, i64 0}
!30 = !{!"_ZTSN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE", !31, i64 0}
!31 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi4ELi1ELi0ELi4ELi1EEEEE", !32, i64 0}
!32 = !{!"_ZTSN5Eigen12DenseStorageIfLi4ELi4ELi1ELi0EEE", !33, i64 0}
!33 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi4ELi0ELi16EEE", !7, i64 0}
!34 = !{!10, !11, i64 2964}
!35 = !{!36, !11, i64 0}
!36 = !{!"_ZTS13problem_setup", !11, i64 0, !11, i64 4, !11, i64 8, !12, i64 12}
!37 = !{!36, !12, i64 12}
!38 = !{!7, !7, i64 0}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}
!41 = !{!42, !42, i64 0}
!42 = !{!"short", !7, i64 0}
!43 = distinct !{!43, !40}
!44 = distinct !{!44, !40}
!45 = !{!36, !11, i64 8}
!46 = distinct !{!46, !40}
!47 = distinct !{!47, !40}
!48 = !{!36, !11, i64 4}
!49 = distinct !{!49, !40}
!50 = !{!12, !12, i64 0}
!51 = !{!10, !12, i64 2960}
!52 = !{!13, !13, i64 0}
!53 = distinct !{!53, !40}
!54 = !{!10, !13, i64 2936}
!55 = !{!56, !13, i64 16}
!56 = !{!"_ZTS9QpProblemIdE", !57, i64 0, !59, i64 72, !59, i64 96, !62, i64 120, !62, i64 144, !66, i64 168, !66, i64 184, !66, i64 200, !58, i64 216, !58, i64 224, !69, i64 232, !59, i64 240, !62, i64 264, !70, i64 288, !71, i64 368, !74, i64 536, !74, i64 608, !66, i64 680, !66, i64 696, !66, i64 712, !66, i64 728, !66, i64 744, !66, i64 760, !6, i64 776, !6, i64 784, !6, i64 792, !6, i64 800, !66, i64 808, !66, i64 824, !66, i64 840, !66, i64 856, !66, i64 872, !66, i64 888, !66, i64 904, !66, i64 920, !78, i64 936, !69, i64 960, !69, i64 961}
!57 = !{!"_ZTS17QpProblemSettingsIdE", !58, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64}
!58 = !{!"long", !7, i64 0}
!59 = !{!"_ZTSN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEE", !60, i64 0}
!60 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEE", !61, i64 0}
!61 = !{!"_ZTSN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EEE", !6, i64 0, !58, i64 8, !58, i64 16}
!62 = !{!"_ZTSSt6vectorI12SparseTripleIdESaIS1_EE", !63, i64 0}
!63 = !{!"_ZTSSt12_Vector_baseI12SparseTripleIdESaIS1_EE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseI12SparseTripleIdESaIS1_EE12_Vector_implE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseI12SparseTripleIdESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!66 = !{!"_ZTSN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEE", !67, i64 0}
!67 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEE", !68, i64 0}
!68 = !{!"_ZTSN5Eigen12DenseStorageIdLin1ELin1ELi1ELi0EEE", !6, i64 0, !58, i64 8}
!69 = !{!"bool", !7, i64 0}
!70 = !{!"_ZTS19CholeskyDenseSolverIdE", !59, i64 0, !6, i64 24, !6, i64 32, !66, i64 40, !6, i64 56, !58, i64 64, !69, i64 72}
!71 = !{!"_ZTS20CholeskySparseSolverIdE", !72, i64 0, !73, i64 16, !73, i64 56, !12, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160}
!72 = !{!"_ZTS12SparseTripleIdE", !13, i64 0, !12, i64 8, !12, i64 12}
!73 = !{!"_ZTS6MatCSCIdE", !12, i64 0, !12, i64 4, !12, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!74 = !{!"_ZTSN5Eigen12SparseMatrixIdLi0EiEE", !75, i64 0, !58, i64 8, !58, i64 16, !6, i64 24, !6, i64 32, !77, i64 40}
!75 = !{!"_ZTSN5Eigen20SparseCompressedBaseINS_12SparseMatrixIdLi0EiEEEE", !76, i64 0}
!76 = !{!"_ZTSN5Eigen16SparseMatrixBaseINS_12SparseMatrixIdLi0EiEEEE", !69, i64 0}
!77 = !{!"_ZTSN5Eigen8internal17CompressedStorageIdiEE", !6, i64 0, !6, i64 8, !58, i64 16, !58, i64 24}
!78 = !{!"_ZTSSt6vectorI14ConstraintInfoIdESaIS1_EE", !79, i64 0}
!79 = !{!"_ZTSSt12_Vector_baseI14ConstraintInfoIdESaIS1_EE", !80, i64 0}
!80 = !{!"_ZTSNSt12_Vector_baseI14ConstraintInfoIdESaIS1_EE12_Vector_implE", !81, i64 0}
!81 = !{!"_ZTSNSt12_Vector_baseI14ConstraintInfoIdESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!82 = !{!10, !13, i64 2944}
!83 = !{!56, !13, i64 24}
!84 = !{!10, !13, i64 2952}
!85 = !{!56, !13, i64 64}
!86 = !{!10, !13, i64 2928}
!87 = !{!56, !13, i64 8}
!88 = !{!10, !12, i64 2920}
!89 = !{!56, !58, i64 0}
!90 = distinct !{!90, !40}
!91 = distinct !{!91, !40}
!92 = distinct !{!92, !40}
!93 = distinct !{!93, !40}
!94 = distinct !{!94, !40}
!95 = distinct !{!95, !40}
!96 = distinct !{!96, !40}
!97 = distinct !{!97, !40}
!98 = distinct !{!98, !40}
!99 = distinct !{!99, !40}
!100 = distinct !{!100, !40}
!101 = distinct !{!101, !40}
!102 = !{!103, !104, i64 0}
!103 = !{!"_ZTSN7qpOASES7OptionsE", !104, i64 0, !105, i64 4, !105, i64 8, !105, i64 12, !105, i64 16, !105, i64 20, !105, i64 24, !12, i64 28, !12, i64 32, !105, i64 36, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !13, i64 96, !13, i64 104, !13, i64 112, !13, i64 120, !106, i64 128, !13, i64 136, !12, i64 144, !13, i64 152, !12, i64 160, !13, i64 168, !13, i64 176, !13, i64 184, !13, i64 192, !105, i64 200, !105, i64 204, !12, i64 208, !12, i64 212, !12, i64 216}
!104 = !{!"_ZTSN7qpOASES10PrintLevelE", !7, i64 0}
!105 = !{!"_ZTSN7qpOASES11BooleanTypeE", !7, i64 0}
!106 = !{!"_ZTSN7qpOASES15SubjectToStatusE", !7, i64 0}
!107 = distinct !{!107, !40}
!108 = distinct !{!108, !40}
!109 = distinct !{!109, !40}
!110 = distinct !{!110, !40}
!111 = distinct !{!111, !40}
!112 = distinct !{!112, !40}
!113 = distinct !{!113, !40}
!114 = distinct !{!114, !40}
!115 = distinct !{!115, !40}
!116 = distinct !{!116, !40}


; 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.RobotState = type { %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.Eigen::Matrix", [12 x i8], %"class.Eigen::Matrix.3", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", %"class.Eigen::Matrix.13", [4 x i8], %"class.Eigen::Quaternion", float, float, [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 { [3 x float] }
%"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 { [12 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 { [9 x float] }
%"class.Eigen::Quaternion" = type { %"class.Eigen::Matrix.23" }
%"class.Eigen::Matrix.23" = type { %"class.Eigen::PlainObjectBase.24" }
%"class.Eigen::PlainObjectBase.24" = type { %"class.Eigen::DenseStorage.31" }
%"class.Eigen::DenseStorage.31" = type { %"struct.Eigen::internal::plain_array.32" }
%"struct.Eigen::internal::plain_array.32" = type { [4 x float] }
%"class.Eigen::Matrix.33" = type { %"class.Eigen::PlainObjectBase.34" }
%"class.Eigen::PlainObjectBase.34" = type { %"class.Eigen::DenseStorage.41" }
%"class.Eigen::DenseStorage.41" = type { ptr, i64 }
%"class.Eigen::Matrix.42" = type { %"class.Eigen::PlainObjectBase.43" }
%"class.Eigen::PlainObjectBase.43" = type { %"class.Eigen::DenseStorage.50" }
%"class.Eigen::DenseStorage.50" = type { ptr, i64, i64 }
%"class.Eigen::Matrix.81" = type { %"class.Eigen::PlainObjectBase.82" }
%"class.Eigen::PlainObjectBase.82" = type { %"class.Eigen::DenseStorage.89" }
%"class.Eigen::DenseStorage.89" = type { ptr, i64 }
%"class.Eigen::Matrix.204" = type { %"class.Eigen::PlainObjectBase.205" }
%"class.Eigen::PlainObjectBase.205" = type { %"class.Eigen::DenseStorage.212" }
%"class.Eigen::DenseStorage.212" = type { %"struct.Eigen::internal::plain_array.213" }
%"struct.Eigen::internal::plain_array.213" = type { [13 x float] }
%"class.Eigen::Matrix.61" = type { %"class.Eigen::PlainObjectBase.62" }
%"class.Eigen::PlainObjectBase.62" = type { %"class.Eigen::DenseStorage.69" }
%"class.Eigen::DenseStorage.69" = type { %"struct.Eigen::internal::plain_array.70" }
%"struct.Eigen::internal::plain_array.70" = type { [169 x float] }
%"class.Eigen::Matrix.51" = type { %"class.Eigen::PlainObjectBase.52" }
%"class.Eigen::PlainObjectBase.52" = type { %"class.Eigen::DenseStorage.59" }
%"class.Eigen::DenseStorage.59" = type { %"struct.Eigen::internal::plain_array.60" }
%"struct.Eigen::internal::plain_array.60" = type { [156 x float] }
%"class.Eigen::Block.132" = type { %"class.Eigen::BlockImpl.133" }
%"class.Eigen::BlockImpl.133" = type { %"class.Eigen::internal::BlockImpl_dense.134" }
%"class.Eigen::internal::BlockImpl_dense.134" = type { %"class.Eigen::MapBase.135", ptr, %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic", i64 }
%"class.Eigen::MapBase.135" = type { %"class.Eigen::MapBase.136" }
%"class.Eigen::MapBase.136" = type { ptr, %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic" }
%"class.Eigen::internal::variable_if_dynamic" = type { i64 }
%"struct.Eigen::CommaInitializer" = type { ptr, i64, i64, i64 }
%"class.Eigen::Product.214" = type { %"class.Eigen::Product.221", %"class.Eigen::Transpose" }
%"class.Eigen::Product.221" = type { ptr, ptr }
%"class.Eigen::Transpose" = type { ptr }
%"class.Eigen::Replicate" = type { ptr, %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic" }
%"class.Eigen::Diagonal" = type <{ ptr, [8 x i8] }>
%"class.Eigen::Matrix.238" = type { %"class.Eigen::PlainObjectBase.239" }
%"class.Eigen::PlainObjectBase.239" = type { %"class.Eigen::DenseStorage.246" }
%"class.Eigen::DenseStorage.246" = type { %"struct.Eigen::internal::plain_array.247" }
%"struct.Eigen::internal::plain_array.247" = type { [15 x float] }
%"struct.Eigen::CommaInitializer.248" = type { ptr, i64, i64, i64 }
%"class.Eigen::CwiseBinaryOp.249" = type { [8 x i8], %"class.Eigen::CwiseNullaryOp.255", %"class.Eigen::CwiseBinaryOp.260", [8 x i8] }
%"class.Eigen::CwiseNullaryOp.255" = type <{ %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic", %"struct.Eigen::internal::scalar_constant_op", [4 x i8] }>
%"struct.Eigen::internal::scalar_constant_op" = type { float }
%"class.Eigen::CwiseBinaryOp.260" = type <{ %"class.Eigen::Product.266", %"class.Eigen::CwiseBinaryOp.288", [8 x i8] }>
%"class.Eigen::Product.266" = type { %"class.Eigen::Product.273", ptr }
%"class.Eigen::Product.273" = type { %"class.Eigen::Transpose.280", ptr }
%"class.Eigen::Transpose.280" = type { ptr }
%"class.Eigen::CwiseBinaryOp.288" = type <{ [8 x i8], %"class.Eigen::CwiseNullaryOp.255", ptr, [8 x i8] }>
%"class.Eigen::Product.297" = type { %"class.Eigen::Product.304", %"class.Eigen::CwiseBinaryOp.324" }
%"class.Eigen::Product.304" = type { %"class.Eigen::CwiseBinaryOp.311", ptr }
%"class.Eigen::CwiseBinaryOp.311" = type <{ [8 x i8], %"class.Eigen::CwiseNullaryOp.317", %"class.Eigen::Transpose.280", [8 x i8] }>
%"class.Eigen::CwiseNullaryOp.317" = type <{ %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic", %"struct.Eigen::internal::scalar_constant_op", [4 x i8] }>
%"class.Eigen::CwiseBinaryOp.324" = type <{ %"class.Eigen::Product.330", ptr, [8 x i8] }>
%"class.Eigen::Product.330" = type { ptr, ptr }
%class.QpProblem = type <{ %struct.QpProblemSettings, %"class.Eigen::Matrix.338", %"class.Eigen::Matrix.338", %"class.std::vector", %"class.std::vector", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", i64, i64, i8, [7 x i8], %"class.Eigen::Matrix.338", %"class.std::vector", %class.CholeskyDenseSolver, %class.CholeskySparseSolver, %"class.Eigen::SparseMatrix", %"class.Eigen::SparseMatrix", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", ptr, ptr, ptr, ptr, %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.Eigen::Matrix.347", %"class.std::vector.357", i8, i8, [6 x i8] }>
%struct.QpProblemSettings = type { i64, double, double, double, double, double, double, double, double }
%"class.Eigen::Matrix.338" = type { %"class.Eigen::PlainObjectBase.339" }
%"class.Eigen::PlainObjectBase.339" = type { %"class.Eigen::DenseStorage.346" }
%"class.Eigen::DenseStorage.346" = type { ptr, i64, i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<SparseTriple<double>, std::allocator<SparseTriple<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.CholeskyDenseSolver = type <{ %"class.Eigen::Matrix.338", ptr, ptr, %"class.Eigen::Matrix.347", ptr, i64, i8, [7 x i8] }>
%class.CholeskySparseSolver = type { %struct.SparseTriple, %struct.MatCSC, %struct.MatCSC, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.SparseTriple = type { double, i32, i32 }
%struct.MatCSC = type { i32, i32, i32, ptr, ptr, ptr }
%"class.Eigen::SparseMatrix" = type { %"class.Eigen::SparseCompressedBase", i64, i64, ptr, ptr, %"class.Eigen::internal::CompressedStorage" }
%"class.Eigen::SparseCompressedBase" = type { %"class.Eigen::SparseMatrixBase" }
%"class.Eigen::SparseMatrixBase" = type { i8 }
%"class.Eigen::internal::CompressedStorage" = type { ptr, ptr, i64, i64 }
%"class.Eigen::Matrix.347" = type { %"class.Eigen::PlainObjectBase.348" }
%"class.Eigen::PlainObjectBase.348" = type { %"class.Eigen::DenseStorage.355" }
%"class.Eigen::DenseStorage.355" = type { ptr, i64 }
%"class.std::vector.357" = type { %"struct.std::_Vector_base.358" }
%"struct.std::_Vector_base.358" = type { %"struct.std::_Vector_base<ConstraintInfo<double>, std::allocator<ConstraintInfo<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<ConstraintInfo<double>, std::allocator<ConstraintInfo<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ConstraintInfo<double>, std::allocator<ConstraintInfo<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ConstraintInfo<double>, std::allocator<ConstraintInfo<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Eigen::CwiseUnaryOp" = type <{ ptr, [8 x i8] }>
%"class.Eigen::CwiseUnaryOp.366" = type <{ ptr, [8 x i8] }>
%class.Timer = type { %struct.timespec }
%struct.timespec = type { i64, i64 }
%"class.qpOASES::QProblem" = type { %"class.qpOASES::QProblemB", i32, ptr, ptr, ptr, %"class.qpOASES::Constraints", ptr, ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.qpOASES::QProblemB" = type { ptr, i32, ptr, ptr, ptr, ptr, %"class.qpOASES::Bounds", ptr, i32, ptr, ptr, double, i32, i32, i32, i32, double, i32, ptr, double, double, i32, [4 x i8], %"class.qpOASES::Options", %"class.qpOASES::Flipper", %"struct.qpOASES::TabularOutput" }
%"class.qpOASES::Bounds" = type { %"class.qpOASES::SubjectTo", %"class.qpOASES::Indexlist", %"class.qpOASES::Indexlist" }
%"class.qpOASES::SubjectTo" = type { ptr, i32, ptr, ptr, i32, i32 }
%"class.qpOASES::Indexlist" = type <{ ptr, ptr, i32, i32, i32, i32, i32, [4 x i8] }>
%"class.qpOASES::Options" = type <{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, double, i32, [4 x i8], double, i32, [4 x i8], double, i32, [4 x i8], double, double, double, double, i32, i32, i32, i32, i32, [4 x i8] }>
%"class.qpOASES::Flipper" = type { i32, i32, %"class.qpOASES::Bounds", %"class.qpOASES::Constraints", ptr, ptr, ptr }
%"struct.qpOASES::TabularOutput" = type { i32, i32, i32, i32, i32, i32, i32, i32 }
%"class.qpOASES::Constraints" = type { %"class.qpOASES::SubjectTo", %"class.qpOASES::Indexlist", %"class.qpOASES::Indexlist" }

@rs = external dso_local global %class.RobotState, align 16
@A_qp = external dso_local global %"class.Eigen::Matrix.33", align 8
@B_qp = external dso_local global %"class.Eigen::Matrix.42", align 8
@S = external dso_local global %"class.Eigen::Matrix.42", align 8
@X_d = external dso_local global %"class.Eigen::Matrix.81", align 8
@U_b = external dso_local global %"class.Eigen::Matrix.81", align 8
@fmat = external dso_local global %"class.Eigen::Matrix.42", align 8
@qH = external dso_local global %"class.Eigen::Matrix.42", align 8
@qg = external dso_local global %"class.Eigen::Matrix.81", align 8
@eye_12h = external dso_local global %"class.Eigen::Matrix.42", align 8
@H_qpoases = external dso_local local_unnamed_addr global ptr, align 8
@g_qpoases = external dso_local local_unnamed_addr global ptr, align 8
@A_qpoases = external dso_local local_unnamed_addr global ptr, align 8
@lb_qpoases = external dso_local local_unnamed_addr global ptr, align 8
@ub_qpoases = external dso_local local_unnamed_addr global ptr, align 8
@q_soln = external dso_local local_unnamed_addr global ptr, align 8
@H_red = external dso_local local_unnamed_addr global ptr, align 8
@g_red = external dso_local local_unnamed_addr global ptr, align 8
@A_red = external dso_local local_unnamed_addr global ptr, align 8
@lb_red = external dso_local local_unnamed_addr global ptr, align 8
@ub_red = external dso_local local_unnamed_addr global ptr, align 8
@q_red = external dso_local local_unnamed_addr global ptr, align 8
@var_elim = external dso_local local_unnamed_addr global [2000 x i8], align 16
@con_elim = external dso_local local_unnamed_addr global [2000 x i8], align 16
@x_0 = external dso_local global %"class.Eigen::Matrix.204", align 4
@I_world = external dso_local global %"class.Eigen::Matrix.13", align 4
@A_ct = external dso_local global %"class.Eigen::Matrix.61", align 4
@B_ct_r = external dso_local global %"class.Eigen::Matrix.51", align 16
@.str.34 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [18 x i8], align 1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_Z9near_zerof(float noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_Z8near_onef(float noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef, ptr noundef, i16 noundef signext, i16 noundef signext) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z4c2qpN5Eigen6MatrixIfLi13ELi13ELi0ELi13ELi13EEENS0_IfLi13ELi12ELi0ELi13ELi12EEEfs(ptr noundef, ptr noundef, float noundef, i16 noundef signext) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10ct_ss_matsN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEEfNS0_IfLi3ELi4ELi0ELi3ELi4EEES1_RNS0_IfLi13ELi13ELi0ELi13ELi13EEERNS0_IfLi13ELi12ELi0ELi13ELi12EEEf(ptr noundef, float noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(676), ptr noundef nonnull align 16 dereferenceable(624), float noundef) local_unnamed_addr #2

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

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

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z9solve_mpcP13update_data_tP13problem_setup(ptr noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.Eigen::Matrix", align 4
  %4 = alloca %"class.Eigen::Quaternion", align 16
  %5 = alloca %"struct.Eigen::CommaInitializer", align 8
  %6 = alloca float, align 4
  %7 = alloca %"class.Eigen::Product.214", align 8
  %8 = alloca %"class.Eigen::Product.221", align 8
  %9 = alloca %"class.Eigen::Transpose", align 8
  %10 = alloca %"class.Eigen::Matrix.13", align 4
  %11 = alloca %"class.Eigen::Matrix.3", align 16
  %12 = alloca %"class.Eigen::Matrix.13", align 4
  %13 = alloca %"class.Eigen::Matrix.61", align 4
  %14 = alloca %"class.Eigen::Matrix.51", align 16
  %15 = alloca %"class.Eigen::Matrix.204", align 4
  %16 = alloca %"class.Eigen::Replicate", align 8
  %17 = alloca %"class.Eigen::Diagonal", align 8
  %18 = alloca float, align 4
  %19 = alloca %"class.Eigen::Matrix.238", align 4
  %20 = alloca %"struct.Eigen::CommaInitializer.248", align 8
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca %"class.Eigen::Block.132", align 8
  %35 = alloca %"class.Eigen::CwiseBinaryOp.249", align 8
  %36 = alloca i32, align 4
  %37 = alloca %"class.Eigen::CwiseBinaryOp.260", align 8
  %38 = alloca %"class.Eigen::Product.266", align 8
  %39 = alloca %"class.Eigen::Product.273", align 8
  %40 = alloca %"class.Eigen::Transpose.280", align 8
  %41 = alloca %"class.Eigen::CwiseBinaryOp.288", align 8
  %42 = alloca %"class.Eigen::Product.297", align 8
  %43 = alloca %"class.Eigen::Product.304", align 8
  %44 = alloca %"class.Eigen::CwiseBinaryOp.311", align 8
  %45 = alloca i32, align 4
  %46 = alloca %"class.Eigen::Transpose.280", align 8
  %47 = alloca %"class.Eigen::CwiseBinaryOp.324", align 8
  %48 = alloca %"class.Eigen::Product.330", align 8
  %49 = alloca %class.QpProblem, align 8
  %50 = alloca %"class.Eigen::CwiseUnaryOp", align 8
  %51 = alloca %"class.Eigen::CwiseUnaryOp", align 8
  %52 = alloca %"class.Eigen::CwiseUnaryOp.366", align 8
  %53 = alloca %"class.Eigen::CwiseUnaryOp.366", align 8
  %54 = alloca %"class.Eigen::Matrix.42", align 8
  %55 = alloca %"class.Eigen::Matrix.42", align 8
  %56 = alloca %"class.Eigen::Matrix.42", align 8
  %57 = alloca %"class.Eigen::Matrix.42", align 8
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca %class.Timer, align 8
  %62 = alloca %"class.qpOASES::QProblem", align 8
  %63 = alloca %"class.qpOASES::Options", align 8
  %64 = alloca %class.QpProblem, align 8
  %65 = alloca %"class.Eigen::Matrix.338", align 8
  %66 = alloca %"class.Eigen::Matrix.338", align 8
  %67 = alloca %"class.Eigen::Matrix.347", align 8
  %68 = alloca %"class.Eigen::Matrix.347", align 8
  %69 = alloca %"class.Eigen::Matrix.347", align 8
  %70 = getelementptr inbounds i8, ptr %0, i64 12
  %71 = getelementptr inbounds i8, ptr %0, i64 24
  %72 = getelementptr inbounds i8, ptr %0, i64 40
  %73 = getelementptr inbounds i8, ptr %0, i64 52
  %74 = getelementptr inbounds i8, ptr %0, i64 100
  %75 = load float, ptr %74, align 4, !tbaa !5
  tail call void @_ZN10RobotState3setEPfS0_S0_S0_S0_f(ptr noundef nonnull align 16 dereferenceable(232) @rs, ptr noundef %0, ptr noundef nonnull %70, ptr noundef nonnull %71, ptr noundef nonnull %72, ptr noundef nonnull %73, float noundef %75)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %3) #11
  call void @_ZN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %3)
  call void @_ZN5Eigen10QuaternionIfLi0EEC2ERKS1_(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) getelementptr inbounds (i8, ptr @rs, i64 208))
  call void @_Z11quat_to_rpyN5Eigen10QuaternionIfLi0EEERNS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEE(ptr noundef nonnull %4, ptr noundef nonnull align 4 dereferenceable(12) %3)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #11
  %76 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef 2)
  call void @_ZN5Eigen9DenseBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEElsERKf(ptr dead_on_unwind nonnull writable sret(%"struct.Eigen::CommaInitializer") align 8 %5, ptr noundef nonnull align 1 dereferenceable(1) @x_0, ptr noundef nonnull align 4 dereferenceable(4) %76)
  %77 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef 1)
          to label %78 unwind label %149

78:                                               ; preds = %2
  %79 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 4 dereferenceable(4) %77)
          to label %80 unwind label %149

80:                                               ; preds = %78
  %81 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef 0)
          to label %82 unwind label %149

82:                                               ; preds = %80
  %83 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 4 dereferenceable(4) %81)
          to label %84 unwind label %149

84:                                               ; preds = %82
  %85 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmINS1_IfLi3ELi1ELi0ELi3ELi1EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 1 dereferenceable(1) @rs)
          to label %86 unwind label %149

86:                                               ; preds = %84
  %87 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmINS1_IfLi3ELi1ELi0ELi3ELi1EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (i8, ptr @rs, i64 24))
          to label %88 unwind label %149

88:                                               ; preds = %86
  %89 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmINS1_IfLi3ELi1ELi0ELi3ELi1EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (i8, ptr @rs, i64 12))
          to label %90 unwind label %149

90:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #11
  store float 0xC0239999A0000000, ptr %6, align 4, !tbaa !12
  %91 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %92 unwind label %151

92:                                               ; preds = %90
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #11
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #11
  %93 = call { ptr, ptr } @_ZNK5Eigen10MatrixBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEmlIS2_EEKNS_7ProductIS2_T_Li0EEERKNS0_IS6_EE(ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (i8, ptr @rs, i64 132), ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (i8, ptr @rs, i64 168))
  %94 = extractvalue { ptr, ptr } %93, 0
  store ptr %94, ptr %8, align 8
  %95 = getelementptr inbounds i8, ptr %8, i64 8
  %96 = extractvalue { ptr, ptr } %93, 1
  store ptr %96, ptr %95, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  %97 = call ptr @_ZN5Eigen9DenseBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) getelementptr inbounds (i8, ptr @rs, i64 132))
  store ptr %97, ptr %9, align 8
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEES3_Li0EEEEmlINS_9TransposeIS3_EEEEKNS1_IS4_T_Li0EEERKNS0_IS9_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Product.214") align 8 %7, ptr noundef nonnull align 1 dereferenceable(1) %8, ptr noundef nonnull align 1 dereferenceable(1) %9)
  %98 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEaSINS_7ProductINS3_IS1_S1_Li0EEENS_9TransposeIS1_EELi0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 4 dereferenceable(36) @I_world, ptr noundef nonnull align 1 dereferenceable(1) %7)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #11
  call void @_ZN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(36) %10, ptr noundef nonnull align 4 dereferenceable(36) @I_world)
  %99 = load float, ptr getelementptr inbounds (i8, ptr @rs, i64 228), align 4, !tbaa !13
  call void @_ZN5Eigen6MatrixIfLi3ELi4ELi0ELi3ELi4EEC2ERKS1_(ptr noundef nonnull align 16 dereferenceable(48) %11, ptr noundef nonnull align 16 dereferenceable(48) getelementptr inbounds (i8, ptr @rs, i64 48))
  call void @_ZN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(36) %12, ptr noundef nonnull align 4 dereferenceable(36) getelementptr inbounds (i8, ptr @rs, i64 132))
  %100 = getelementptr inbounds i8, ptr %0, i64 2964
  %101 = load float, ptr %100, align 4, !tbaa !32
  call void @_Z10ct_ss_matsN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEEfNS0_IfLi3ELi4ELi0ELi3ELi4EEES1_RNS0_IfLi13ELi13ELi0ELi13ELi13EEERNS0_IfLi13ELi12ELi0ELi13ELi12EEEf(ptr noundef nonnull %10, float noundef %99, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull align 4 dereferenceable(676) @A_ct, ptr noundef nonnull align 16 dereferenceable(624) @B_ct_r, float noundef %101)
  call void @_ZN5Eigen6MatrixIfLi13ELi13ELi0ELi13ELi13EEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(676) %13, ptr noundef nonnull align 4 dereferenceable(676) @A_ct)
  call void @_ZN5Eigen6MatrixIfLi13ELi12ELi0ELi13ELi12EEC2ERKS1_(ptr noundef nonnull align 16 dereferenceable(624) %14, ptr noundef nonnull align 16 dereferenceable(624) @B_ct_r)
  %102 = load float, ptr %1, align 4, !tbaa !33
  %103 = getelementptr inbounds i8, ptr %1, i64 12
  %104 = load i32, ptr %103, align 4, !tbaa !35
  %105 = trunc i32 %104 to i16
  call void @_Z4c2qpN5Eigen6MatrixIfLi13ELi13ELi0ELi13ELi13EEENS0_IfLi13ELi12ELi0ELi13ELi12EEEfs(ptr noundef nonnull %13, ptr noundef nonnull %14, float noundef %102, i16 noundef signext %105)
  call void @llvm.lifetime.start.p0(i64 52, ptr nonnull %15) #11
  call void @_ZN5Eigen6MatrixIfLi13ELi1ELi0ELi13ELi1EEC2Ev(ptr noundef nonnull align 4 dereferenceable(52) %15)
  %106 = getelementptr inbounds i8, ptr %0, i64 104
  %107 = load float, ptr %106, align 4, !tbaa !12
  %108 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 0)
  store float %107, ptr %108, align 4, !tbaa !12
  %109 = getelementptr inbounds i8, ptr %0, i64 108
  %110 = load float, ptr %109, align 4, !tbaa !12
  %111 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 1)
  store float %110, ptr %111, align 4, !tbaa !12
  %112 = getelementptr inbounds i8, ptr %0, i64 112
  %113 = load float, ptr %112, align 4, !tbaa !12
  %114 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 2)
  store float %113, ptr %114, align 4, !tbaa !12
  %115 = getelementptr inbounds i8, ptr %0, i64 116
  %116 = load float, ptr %115, align 4, !tbaa !12
  %117 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 3)
  store float %116, ptr %117, align 4, !tbaa !12
  %118 = getelementptr inbounds i8, ptr %0, i64 120
  %119 = load float, ptr %118, align 4, !tbaa !12
  %120 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 4)
  store float %119, ptr %120, align 4, !tbaa !12
  %121 = getelementptr inbounds i8, ptr %0, i64 124
  %122 = load float, ptr %121, align 4, !tbaa !12
  %123 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 5)
  store float %122, ptr %123, align 4, !tbaa !12
  %124 = getelementptr inbounds i8, ptr %0, i64 128
  %125 = load float, ptr %124, align 4, !tbaa !12
  %126 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 6)
  store float %125, ptr %126, align 4, !tbaa !12
  %127 = getelementptr inbounds i8, ptr %0, i64 132
  %128 = load float, ptr %127, align 4, !tbaa !12
  %129 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 7)
  store float %128, ptr %129, align 4, !tbaa !12
  %130 = getelementptr inbounds i8, ptr %0, i64 136
  %131 = load float, ptr %130, align 4, !tbaa !12
  %132 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 8)
  store float %131, ptr %132, align 4, !tbaa !12
  %133 = getelementptr inbounds i8, ptr %0, i64 140
  %134 = load float, ptr %133, align 4, !tbaa !12
  %135 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 9)
  store float %134, ptr %135, align 4, !tbaa !12
  %136 = getelementptr inbounds i8, ptr %0, i64 144
  %137 = load float, ptr %136, align 4, !tbaa !12
  %138 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 10)
  store float %137, ptr %138, align 4, !tbaa !12
  %139 = getelementptr inbounds i8, ptr %0, i64 148
  %140 = load float, ptr %139, align 4, !tbaa !12
  %141 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 11)
  store float %140, ptr %141, align 4, !tbaa !12
  %142 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 12)
  store float 0.000000e+00, ptr %142, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #11
  %143 = load i32, ptr %103, align 4, !tbaa !35
  %144 = sext i32 %143 to i64
  call void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEE9replicateEll(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Replicate") align 8 %16, ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef %144, i64 noundef 1)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #11
  call void @_ZN5Eigen10MatrixBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE8diagonalEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Diagonal") align 8 %17, ptr noundef nonnull align 1 dereferenceable(1) @S)
  %145 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZN5Eigen8DiagonalINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEELi0EEaSINS_9ReplicateINS1_IfLi13ELi1ELi0ELi13ELi1EEELin1ELin1EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(9) %17, ptr noundef nonnull align 1 dereferenceable(1) %16)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #11
  %146 = load i32, ptr %103, align 4, !tbaa !35
  %147 = icmp sgt i32 %146, 0
  br i1 %147, label %.preheader335.lr.ph, label %._crit_edge

.preheader335.lr.ph:                              ; preds = %92
  %148 = getelementptr inbounds i8, ptr %0, i64 152
  br label %.preheader335

149:                                              ; preds = %88, %86, %84, %82, %80, %78, %2
  %150 = landingpad { ptr, i32 }
          cleanup
  br label %153

151:                                              ; preds = %90
  %152 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #11
  br label %153

153:                                              ; preds = %151, %149
  %.pn = phi { ptr, i32 } [ %152, %151 ], [ %150, %149 ]
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi13ELi1ELi0ELi13ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #11
  br label %944

.preheader335:                                    ; preds = %.preheader335.lr.ph, %.preheader335
  %154 = phi i32 [ 0, %.preheader335.lr.ph ], [ %218, %.preheader335 ]
  %.0248342 = phi i16 [ 0, %.preheader335.lr.ph ], [ %217, %.preheader335 ]
  %155 = mul nsw i32 %154, 12
  %156 = mul nsw i32 %154, 13
  %157 = sext i32 %156 to i64
  %158 = sext i32 %155 to i64
  %159 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %158
  %160 = load float, ptr %159, align 4, !tbaa !12
  %161 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %157, i64 noundef 0)
  store float %160, ptr %161, align 4, !tbaa !12
  %162 = or disjoint i64 %158, 1
  %163 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %162
  %164 = load float, ptr %163, align 4, !tbaa !12
  %165 = add nsw i64 %157, 1
  %166 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %165, i64 noundef 0)
  store float %164, ptr %166, align 4, !tbaa !12
  %167 = or disjoint i64 %158, 2
  %168 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %167
  %169 = load float, ptr %168, align 4, !tbaa !12
  %170 = add nsw i64 %157, 2
  %171 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %170, i64 noundef 0)
  store float %169, ptr %171, align 4, !tbaa !12
  %172 = or disjoint i64 %158, 3
  %173 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %172
  %174 = load float, ptr %173, align 4, !tbaa !12
  %175 = add nsw i64 %157, 3
  %176 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %175, i64 noundef 0)
  store float %174, ptr %176, align 4, !tbaa !12
  %177 = add nsw i64 %158, 4
  %178 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %177
  %179 = load float, ptr %178, align 4, !tbaa !12
  %180 = add nsw i64 %157, 4
  %181 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %180, i64 noundef 0)
  store float %179, ptr %181, align 4, !tbaa !12
  %182 = add nsw i64 %158, 5
  %183 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %182
  %184 = load float, ptr %183, align 4, !tbaa !12
  %185 = add nsw i64 %157, 5
  %186 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %185, i64 noundef 0)
  store float %184, ptr %186, align 4, !tbaa !12
  %187 = add nsw i64 %158, 6
  %188 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %187
  %189 = load float, ptr %188, align 4, !tbaa !12
  %190 = add nsw i64 %157, 6
  %191 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %190, i64 noundef 0)
  store float %189, ptr %191, align 4, !tbaa !12
  %192 = add nsw i64 %158, 7
  %193 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %192
  %194 = load float, ptr %193, align 4, !tbaa !12
  %195 = add nsw i64 %157, 7
  %196 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %195, i64 noundef 0)
  store float %194, ptr %196, align 4, !tbaa !12
  %197 = add nsw i64 %158, 8
  %198 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %197
  %199 = load float, ptr %198, align 4, !tbaa !12
  %200 = add nsw i64 %157, 8
  %201 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %200, i64 noundef 0)
  store float %199, ptr %201, align 4, !tbaa !12
  %202 = add nsw i64 %158, 9
  %203 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %202
  %204 = load float, ptr %203, align 4, !tbaa !12
  %205 = add nsw i64 %157, 9
  %206 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %205, i64 noundef 0)
  store float %204, ptr %206, align 4, !tbaa !12
  %207 = add nsw i64 %158, 10
  %208 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %207
  %209 = load float, ptr %208, align 4, !tbaa !12
  %210 = add nsw i64 %157, 10
  %211 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %210, i64 noundef 0)
  store float %209, ptr %211, align 4, !tbaa !12
  %212 = add nsw i64 %158, 11
  %213 = getelementptr inbounds [432 x float], ptr %148, i64 0, i64 %212
  %214 = load float, ptr %213, align 4, !tbaa !12
  %215 = add nsw i64 %157, 11
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) @X_d, i64 noundef %215, i64 noundef 0)
  store float %214, ptr %216, align 4, !tbaa !12
  %217 = add i16 %.0248342, 1
  %218 = sext i16 %217 to i32
  %219 = load i32, ptr %103, align 4, !tbaa !35
  %220 = icmp sgt i32 %219, %218
  br i1 %220, label %.preheader335, label %.preheader334, !llvm.loop !36

.preheader334:                                    ; preds = %.preheader335
  %221 = icmp sgt i32 %219, 0
  br i1 %221, label %.preheader333.lr.ph, label %._crit_edge

.preheader333.lr.ph:                              ; preds = %.preheader334
  %222 = getelementptr inbounds i8, ptr %0, i64 1884
  %223 = getelementptr inbounds i8, ptr %1, i64 8
  br label %.preheader333

.preheader333:                                    ; preds = %.preheader333.lr.ph, %.preheader333
  %224 = phi i32 [ 0, %.preheader333.lr.ph ], [ %319, %.preheader333 ]
  %.0264346 = phi i16 [ 0, %.preheader333.lr.ph ], [ %317, %.preheader333 ]
  %.0266345 = phi i16 [ 0, %.preheader333.lr.ph ], [ %318, %.preheader333 ]
  %225 = shl nsw i32 %224, 2
  %226 = sext i32 %225 to i64
  %227 = sext i16 %.0264346 to i32
  %228 = mul nsw i32 %227, 5
  %229 = sext i32 %228 to i64
  %230 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %229)
  store float 0x42274876E0000000, ptr %230, align 4, !tbaa !12
  %231 = or disjoint i32 %228, 1
  %232 = sext i32 %231 to i64
  %233 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %232)
  store float 0x42274876E0000000, ptr %233, align 4, !tbaa !12
  %234 = or disjoint i32 %228, 2
  %235 = sext i32 %234 to i64
  %236 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %235)
  store float 0x42274876E0000000, ptr %236, align 4, !tbaa !12
  %237 = or disjoint i32 %228, 3
  %238 = sext i32 %237 to i64
  %239 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %238)
  store float 0x42274876E0000000, ptr %239, align 4, !tbaa !12
  %240 = getelementptr inbounds [36 x i8], ptr %222, i64 0, i64 %226
  %241 = load i8, ptr %240, align 1, !tbaa !38
  %242 = uitofp i8 %241 to float
  %243 = load float, ptr %223, align 4, !tbaa !39
  %244 = fmul float %243, %242
  %245 = add nsw i32 %228, 4
  %246 = sext i32 %245 to i64
  %247 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %246)
  store float %244, ptr %247, align 4, !tbaa !12
  %248 = or disjoint i16 %.0264346, 1
  %249 = sext i16 %248 to i32
  %250 = mul nsw i32 %249, 5
  %251 = sext i32 %250 to i64
  %252 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %251)
  store float 0x42274876E0000000, ptr %252, align 4, !tbaa !12
  %253 = add nuw nsw i32 %250, 1
  %254 = sext i32 %253 to i64
  %255 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %254)
  store float 0x42274876E0000000, ptr %255, align 4, !tbaa !12
  %256 = or disjoint i32 %250, 2
  %257 = sext i32 %256 to i64
  %258 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %257)
  store float 0x42274876E0000000, ptr %258, align 4, !tbaa !12
  %259 = add nsw i32 %250, 3
  %260 = sext i32 %259 to i64
  %261 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %260)
  store float 0x42274876E0000000, ptr %261, align 4, !tbaa !12
  %262 = or disjoint i64 %226, 1
  %263 = getelementptr inbounds [36 x i8], ptr %222, i64 0, i64 %262
  %264 = load i8, ptr %263, align 1, !tbaa !38
  %265 = uitofp i8 %264 to float
  %266 = load float, ptr %223, align 4, !tbaa !39
  %267 = fmul float %266, %265
  %268 = add nsw i32 %250, 4
  %269 = sext i32 %268 to i64
  %270 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %269)
  store float %267, ptr %270, align 4, !tbaa !12
  %271 = or disjoint i16 %.0264346, 2
  %272 = sext i16 %271 to i32
  %273 = mul nsw i32 %272, 5
  %274 = sext i32 %273 to i64
  %275 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %274)
  store float 0x42274876E0000000, ptr %275, align 4, !tbaa !12
  %276 = or disjoint i32 %273, 1
  %277 = sext i32 %276 to i64
  %278 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %277)
  store float 0x42274876E0000000, ptr %278, align 4, !tbaa !12
  %279 = add nsw i32 %273, 2
  %280 = sext i32 %279 to i64
  %281 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %280)
  store float 0x42274876E0000000, ptr %281, align 4, !tbaa !12
  %282 = add nsw i32 %273, 3
  %283 = sext i32 %282 to i64
  %284 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %283)
  store float 0x42274876E0000000, ptr %284, align 4, !tbaa !12
  %285 = or disjoint i64 %226, 2
  %286 = getelementptr inbounds [36 x i8], ptr %222, i64 0, i64 %285
  %287 = load i8, ptr %286, align 1, !tbaa !38
  %288 = uitofp i8 %287 to float
  %289 = load float, ptr %223, align 4, !tbaa !39
  %290 = fmul float %289, %288
  %291 = add nsw i32 %273, 4
  %292 = sext i32 %291 to i64
  %293 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %292)
  store float %290, ptr %293, align 4, !tbaa !12
  %294 = or disjoint i16 %.0264346, 3
  %295 = sext i16 %294 to i32
  %296 = mul nsw i32 %295, 5
  %297 = sext i32 %296 to i64
  %298 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %297)
  store float 0x42274876E0000000, ptr %298, align 4, !tbaa !12
  %299 = add nsw i32 %296, 1
  %300 = sext i32 %299 to i64
  %301 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %300)
  store float 0x42274876E0000000, ptr %301, align 4, !tbaa !12
  %302 = add nsw i32 %296, 2
  %303 = sext i32 %302 to i64
  %304 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %303)
  store float 0x42274876E0000000, ptr %304, align 4, !tbaa !12
  %305 = add nsw i32 %296, 3
  %306 = sext i32 %305 to i64
  %307 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %306)
  store float 0x42274876E0000000, ptr %307, align 4, !tbaa !12
  %308 = or disjoint i64 %226, 3
  %309 = getelementptr inbounds [36 x i8], ptr %222, i64 0, i64 %308
  %310 = load i8, ptr %309, align 1, !tbaa !38
  %311 = uitofp i8 %310 to float
  %312 = load float, ptr %223, align 4, !tbaa !39
  %313 = fmul float %312, %311
  %314 = add nsw i32 %296, 4
  %315 = sext i32 %314 to i64
  %316 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) @U_b, i64 noundef %315)
  store float %313, ptr %316, align 4, !tbaa !12
  %317 = add i16 %.0264346, 4
  %318 = add i16 %.0266345, 1
  %319 = sext i16 %318 to i32
  %320 = load i32, ptr %103, align 4, !tbaa !35
  %321 = icmp sgt i32 %320, %319
  br i1 %321, label %.preheader333, label %._crit_edge, !llvm.loop !40

._crit_edge:                                      ; preds = %.preheader333, %92, %.preheader334
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #11
  %322 = getelementptr inbounds i8, ptr %1, i64 4
  %323 = load float, ptr %322, align 4, !tbaa !41
  %324 = fdiv float 1.000000e+00, %323
  store float %324, ptr %18, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 60, ptr nonnull %19) #11
  call void @_ZN5Eigen6MatrixIfLi5ELi3ELi0ELi5ELi3EEC2Ev(ptr noundef nonnull align 4 dereferenceable(60) %19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #11
  call void @_ZN5Eigen9DenseBaseINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEElsERKf(ptr dead_on_unwind nonnull writable sret(%"struct.Eigen::CommaInitializer.248") align 8 %20, ptr noundef nonnull align 1 dereferenceable(1) %19, ptr noundef nonnull align 4 dereferenceable(4) %18)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #11
  store float 0.000000e+00, ptr %21, align 4, !tbaa !12
  %325 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %326 unwind label %380

326:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #11
  store float 1.000000e+00, ptr %22, align 4, !tbaa !12
  %327 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %328 unwind label %382

328:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #11
  %329 = load float, ptr %18, align 4, !tbaa !12
  %330 = fneg float %329
  store float %330, ptr %23, align 4, !tbaa !12
  %331 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %332 unwind label %384

332:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !12
  %333 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %334 unwind label %386

334:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #11
  store float 1.000000e+00, ptr %25, align 4, !tbaa !12
  %335 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %333, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %336 unwind label %388

336:                                              ; preds = %334
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #11
  store float 0.000000e+00, ptr %26, align 4, !tbaa !12
  %337 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %335, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %338 unwind label %390

338:                                              ; preds = %336
  %339 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %337, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %340 unwind label %390

340:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #11
  store float 1.000000e+00, ptr %27, align 4, !tbaa !12
  %341 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %342 unwind label %392

342:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #11
  store float 0.000000e+00, ptr %28, align 4, !tbaa !12
  %343 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %341, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %344 unwind label %394

344:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #11
  %345 = load float, ptr %18, align 4, !tbaa !12
  %346 = fneg float %345
  store float %346, ptr %29, align 4, !tbaa !12
  %347 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %343, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %348 unwind label %396

348:                                              ; preds = %344
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #11
  store float 1.000000e+00, ptr %30, align 4, !tbaa !12
  %349 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %347, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %350 unwind label %398

350:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #11
  store float 0.000000e+00, ptr %31, align 4, !tbaa !12
  %351 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %349, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %352 unwind label %400

352:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #11
  store float 0.000000e+00, ptr %32, align 4, !tbaa !12
  %353 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %354 unwind label %402

354:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #11
  store float 1.000000e+00, ptr %33, align 4, !tbaa !12
  %355 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEEcmERKf(ptr noundef nonnull align 8 dereferenceable(32) %353, ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %356 unwind label %404

356:                                              ; preds = %354
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #11
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  %357 = load i32, ptr %103, align 4, !tbaa !35
  %358 = icmp sgt i32 %357, 0
  br i1 %358, label %.lr.ph, label %._crit_edge349

._crit_edge349:                                   ; preds = %.lr.ph, %356
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %35) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #11
  store i32 2, ptr %36, align 4, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %37) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #11
  %359 = call ptr @_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) @B_qp)
  store ptr %359, ptr %40, align 8
  %360 = call { ptr, ptr } @_ZNK5Eigen10MatrixBaseINS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEEEmlIS3_EEKNS_7ProductIS4_T_Li0EEERKNS0_IS8_EE(ptr noundef nonnull align 1 dereferenceable(1) %40, ptr noundef nonnull align 1 dereferenceable(1) @S)
  %361 = extractvalue { ptr, ptr } %360, 0
  store ptr %361, ptr %39, align 8
  %362 = getelementptr inbounds i8, ptr %39, i64 8
  %363 = extractvalue { ptr, ptr } %360, 1
  store ptr %363, ptr %362, align 8
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEES4_Li0EEEEmlIS4_EEKNS1_IS6_T_Li0EEERKNS0_IS9_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Product.266") align 8 %38, ptr noundef nonnull align 1 dereferenceable(1) %39, ptr noundef nonnull align 1 dereferenceable(1) @B_qp)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %41) #11
  %364 = getelementptr inbounds i8, ptr %0, i64 1880
  call void @_ZN5EigenmlIfEEKNS_13CwiseBinaryOpINS_8internal17scalar_product_opINS2_18promote_scalar_argIfT_Xsr5Eigen8internal14has_ReturnTypeINS_20ScalarBinaryOpTraitsIS5_fNS3_IS5_fEEEEEE5valueEE4typeEfEEKNS2_19plain_constant_typeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEESA_E4typeEKSE_EERKS5_RKNS_10MatrixBaseISE_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.288") align 8 %41, ptr noundef nonnull align 4 dereferenceable(4) %364, ptr noundef nonnull align 1 dereferenceable(1) @eye_12h)
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS1_INS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEES4_Li0EEES4_Li0EEEEplINS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINSB_18scalar_constant_opIfEEKS4_EESH_EEEEKNSA_INSB_13scalar_sum_opIfNSB_6traitsIT_E6ScalarEEEKS7_KSN_EERKNS0_ISN_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.260") align 8 %37, ptr noundef nonnull align 1 dereferenceable(1) %38, ptr noundef nonnull align 1 dereferenceable(1) %41)
  call void @_ZN5EigenmlIiEEKNS_13CwiseBinaryOpINS_8internal17scalar_product_opINS2_18promote_scalar_argIfT_Xsr5Eigen8internal14has_ReturnTypeINS_20ScalarBinaryOpTraitsIS5_fNS3_IS5_fEEEEEE5valueEE4typeEfEEKNS2_19plain_constant_typeINS1_INS2_13scalar_sum_opIffEEKNS_7ProductINSF_INS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEESI_Li0EEESI_Li0EEEKNS1_INS3_IffEEKNS_14CwiseNullaryOpINS2_18scalar_constant_opIfEEKSI_EESR_EEEESA_E4typeEKSW_EERKS5_RKNS_10MatrixBaseISW_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.249") align 8 %35, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 1 dereferenceable(1) %37)
  %365 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINS4_18scalar_constant_opIfEEKS1_EEKNS3_INS4_13scalar_sum_opIffEEKNS_7ProductINSF_INS_9TransposeIS1_EES1_Li0EEES1_Li0EEEKNS3_IS6_SC_SA_EEEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) @qH, ptr noundef nonnull align 1 dereferenceable(1) %35)
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %35) #11
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %42) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %43) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %44) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #11
  store i32 2, ptr %45, align 4, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  %366 = call ptr @_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) @B_qp)
  store ptr %366, ptr %46, align 8
  call void @_ZN5EigenmlIiEEKNS_13CwiseBinaryOpINS_8internal17scalar_product_opINS2_18promote_scalar_argIfT_Xsr5Eigen8internal14has_ReturnTypeINS_20ScalarBinaryOpTraitsIS5_fNS3_IS5_fEEEEEE5valueEE4typeEfEEKNS2_19plain_constant_typeINS_9TransposeINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEEESA_E4typeEKSG_EERKS5_RKNS_10MatrixBaseISG_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.311") align 8 %44, ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 1 dereferenceable(1) %46)
  call void @_ZNK5Eigen10MatrixBaseINS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINS2_18scalar_constant_opIfEEKNS_6MatrixIfLin1ELin1ELi1ELin1ELin1EEEEEKNS_9TransposeINS8_IfLin1ELin1ELi0ELin1ELin1EEEEEEEEmlISE_EEKNS_7ProductISH_T_Li0EEERKNS0_ISL_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Product.304") align 8 %43, ptr noundef nonnull align 1 dereferenceable(1) %44, ptr noundef nonnull align 1 dereferenceable(1) @S)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #11
  %367 = call { ptr, ptr } @_ZNK5Eigen10MatrixBaseINS_6MatrixIfLin1ELi13ELi0ELin1ELi13EEEEmlINS1_IfLi13ELi1ELi0ELi13ELi1EEEEEKNS_7ProductIS2_T_Li0EEERKNS0_IS7_EE(ptr noundef nonnull align 1 dereferenceable(1) @A_qp, ptr noundef nonnull align 1 dereferenceable(1) @x_0)
  %368 = extractvalue { ptr, ptr } %367, 0
  store ptr %368, ptr %48, align 8
  %369 = getelementptr inbounds i8, ptr %48, i64 8
  %370 = extractvalue { ptr, ptr } %367, 1
  store ptr %370, ptr %369, align 8
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS_6MatrixIfLin1ELi13ELi0ELin1ELi13EEENS2_IfLi13ELi1ELi0ELi13ELi1EEELi0EEEEmiINS2_IfLin1ELi1ELi0ELin1ELi1EEEEEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIfNSA_6traitsIT_E6ScalarEEEKS5_KSD_EERKNS0_ISD_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.324") align 8 %47, ptr noundef nonnull align 1 dereferenceable(1) %48, ptr noundef nonnull align 1 dereferenceable(1) @X_d)
  call void @_ZNK5Eigen10MatrixBaseINS_7ProductINS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINS3_18scalar_constant_opIfEEKNS_6MatrixIfLin1ELin1ELi1ELin1ELin1EEEEEKNS_9TransposeINS9_IfLin1ELin1ELi0ELin1ELin1EEEEEEESF_Li0EEEEmlINS2_INS3_20scalar_difference_opIffEEKNS1_INS9_IfLin1ELi13ELi0ELin1ELi13EEENS9_IfLi13ELi1ELi0ELi13ELi1EEELi0EEEKNS9_IfLin1ELi1ELi0ELin1ELi1EEEEEEEKNS1_ISJ_T_Li0EEERKNS0_ISV_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Product.297") align 8 %42, ptr noundef nonnull align 1 dereferenceable(1) %43, ptr noundef nonnull align 1 dereferenceable(1) %47)
  %371 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEaSINS_7ProductINS3_INS_13CwiseBinaryOpINS_8internal17scalar_product_opIffEEKNS_14CwiseNullaryOpINS5_18scalar_constant_opIfEEKNS0_IfLin1ELin1ELi1ELin1ELin1EEEEEKNS_9TransposeINS0_IfLin1ELin1ELi0ELin1ELin1EEEEEEESG_Li0EEENS4_INS5_20scalar_difference_opIffEEKNS3_INS0_IfLin1ELi13ELi0ELin1ELi13EEENS0_IfLi13ELi1ELi0ELi13ELi1EEELi0EEEKS1_EELi0EEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) @qg, ptr noundef nonnull align 1 dereferenceable(1) %42)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %43) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %42) #11
  call void @llvm.lifetime.start.p0(i64 968, ptr nonnull %49) #11
  %372 = load i32, ptr %103, align 4, !tbaa !35
  %373 = mul nsw i32 %372, 12
  %374 = sext i32 %373 to i64
  %375 = mul nsw i32 %372, 20
  %376 = sext i32 %375 to i64
  call void @_ZN9QpProblemIdEC2Ellb(ptr noundef nonnull align 8 dereferenceable(962) %49, i64 noundef %374, i64 noundef %376, i1 noundef zeroext true)
  %377 = getelementptr inbounds i8, ptr %0, i64 2960
  %378 = load i32, ptr %377, align 8, !tbaa !43
  %379 = icmp eq i32 %378, 1
  br i1 %379, label %429, label %482

380:                                              ; preds = %._crit_edge
  %381 = landingpad { ptr, i32 }
          cleanup
  br label %417

382:                                              ; preds = %326
  %383 = landingpad { ptr, i32 }
          cleanup
  br label %416

384:                                              ; preds = %328
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %415

386:                                              ; preds = %332
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %414

388:                                              ; preds = %334
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %413

390:                                              ; preds = %338, %336
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %412

392:                                              ; preds = %340
  %393 = landingpad { ptr, i32 }
          cleanup
  br label %411

394:                                              ; preds = %342
  %395 = landingpad { ptr, i32 }
          cleanup
  br label %410

396:                                              ; preds = %344
  %397 = landingpad { ptr, i32 }
          cleanup
  br label %409

398:                                              ; preds = %348
  %399 = landingpad { ptr, i32 }
          cleanup
  br label %408

400:                                              ; preds = %350
  %401 = landingpad { ptr, i32 }
          cleanup
  br label %407

402:                                              ; preds = %352
  %403 = landingpad { ptr, i32 }
          cleanup
  br label %406

404:                                              ; preds = %354
  %405 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #11
  br label %406

406:                                              ; preds = %404, %402
  %.pn286 = phi { ptr, i32 } [ %405, %404 ], [ %403, %402 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #11
  br label %407

407:                                              ; preds = %406, %400
  %.pn286.pn = phi { ptr, i32 } [ %.pn286, %406 ], [ %401, %400 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #11
  br label %408

408:                                              ; preds = %407, %398
  %.pn286.pn.pn = phi { ptr, i32 } [ %.pn286.pn, %407 ], [ %399, %398 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #11
  br label %409

409:                                              ; preds = %408, %396
  %.pn286.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn, %408 ], [ %397, %396 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #11
  br label %410

410:                                              ; preds = %409, %394
  %.pn286.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn.pn, %409 ], [ %395, %394 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #11
  br label %411

411:                                              ; preds = %410, %392
  %.pn286.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn.pn.pn, %410 ], [ %393, %392 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #11
  br label %412

412:                                              ; preds = %411, %390
  %.pn286.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn.pn.pn.pn, %411 ], [ %391, %390 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #11
  br label %413

413:                                              ; preds = %412, %388
  %.pn286.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn.pn.pn.pn.pn, %412 ], [ %389, %388 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #11
  br label %414

414:                                              ; preds = %413, %386
  %.pn286.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn.pn.pn.pn.pn.pn, %413 ], [ %387, %386 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #11
  br label %415

415:                                              ; preds = %414, %384
  %.pn286.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn.pn.pn.pn.pn.pn.pn, %414 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #11
  br label %416

416:                                              ; preds = %415, %382
  %.pn286.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn.pn.pn.pn.pn.pn.pn.pn, %415 ], [ %383, %382 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #11
  br label %417

417:                                              ; preds = %416, %380
  %.pn286.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %416 ], [ %381, %380 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #11
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIfLi5ELi3ELi0ELi5ELi3EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  br label %943

.lr.ph:                                           ; preds = %356, %.lr.ph
  %418 = phi i32 [ %425, %.lr.ph ], [ 0, %356 ]
  %.0268347 = phi i16 [ %424, %.lr.ph ], [ 0, %356 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %34) #11
  %419 = mul nsw i32 %418, 5
  %420 = sext i32 %419 to i64
  %421 = mul nsw i32 %418, 3
  %422 = sext i32 %421 to i64
  call void @_ZN5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE5blockIiiEENS3_13FixedBlockXprIXsr8internal15get_fixed_valueIT_EE5valueEXsr8internal15get_fixed_valueIT0_EE5valueEE4TypeEllS6_S7_(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.132") align 8 %34, ptr noundef nonnull align 1 dereferenceable(1) @fmat, i64 noundef %420, i64 noundef %422, i32 noundef 5, i32 noundef 3)
  %423 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5Eigen5BlockINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEELin1ELin1ELb0EEaSINS1_IfLi5ELi3ELi0ELi5ELi3EEEEERS3_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(56) %34, ptr noundef nonnull align 1 dereferenceable(1) %19)
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %34) #11
  %424 = add i16 %.0268347, 1
  %425 = sext i16 %424 to i32
  %426 = load i32, ptr %103, align 4, !tbaa !35
  %427 = shl nsw i32 %426, 2
  %428 = icmp sgt i32 %427, %425
  br i1 %428, label %.lr.ph, label %._crit_edge349, !llvm.loop !44

429:                                              ; preds = %._crit_edge349
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #11
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE4castIdEENS3_7CastXprIT_E4TypeEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp") align 8 %50, ptr noundef nonnull align 1 dereferenceable(1) @fmat)
          to label %430 unwind label %461

430:                                              ; preds = %429
  %431 = getelementptr inbounds i8, ptr %49, i64 72
  %432 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_12CwiseUnaryOpINS_8internal14scalar_cast_opIfdEEKNS0_IfLin1ELin1ELi0ELin1ELin1EEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %431, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %433 unwind label %461

433:                                              ; preds = %430
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #11
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEE4castIdEENS3_7CastXprIT_E4TypeEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp") align 8 %51, ptr noundef nonnull align 1 dereferenceable(1) @qH)
          to label %434 unwind label %463

434:                                              ; preds = %433
  %435 = getelementptr inbounds i8, ptr %49, i64 96
  %436 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_12CwiseUnaryOpINS_8internal14scalar_cast_opIfdEEKNS0_IfLin1ELin1ELi0ELin1ELin1EEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %435, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %437 unwind label %463

437:                                              ; preds = %434
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %52) #11
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEE4castIdEENS3_7CastXprIT_E4TypeEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp.366") align 8 %52, ptr noundef nonnull align 1 dereferenceable(1) @qg)
          to label %438 unwind label %465

438:                                              ; preds = %437
  %439 = getelementptr inbounds i8, ptr %49, i64 200
  %440 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSINS_12CwiseUnaryOpINS_8internal14scalar_cast_opIfdEEKNS0_IfLin1ELi1ELi0ELin1ELi1EEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %439, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %441 unwind label %465

441:                                              ; preds = %438
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #11
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEE4castIdEENS3_7CastXprIT_E4TypeEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp.366") align 8 %53, ptr noundef nonnull align 1 dereferenceable(1) @U_b)
          to label %442 unwind label %467

442:                                              ; preds = %441
  %443 = getelementptr inbounds i8, ptr %49, i64 184
  %444 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSINS_12CwiseUnaryOpINS_8internal14scalar_cast_opIfdEEKNS0_IfLin1ELi1ELi0ELin1ELi1EEEEEEERS1_RKNS_9DenseBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %443, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %445 unwind label %467

445:                                              ; preds = %442
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #11
  %446 = load i32, ptr %103, align 4, !tbaa !35
  %447 = icmp sgt i32 %446, 0
  br i1 %447, label %.lr.ph426, label %._crit_edge427

.lr.ph426:                                        ; preds = %445
  %448 = getelementptr inbounds i8, ptr %49, i64 168
  br label %469

._crit_edge427:                                   ; preds = %472, %445
  %449 = getelementptr inbounds i8, ptr %0, i64 2944
  %450 = load double, ptr %449, align 8, !tbaa !45
  %451 = getelementptr inbounds i8, ptr %49, i64 24
  store double %450, ptr %451, align 8, !tbaa !46
  %452 = getelementptr inbounds i8, ptr %0, i64 2952
  %453 = load double, ptr %452, align 8, !tbaa !74
  %454 = getelementptr inbounds i8, ptr %49, i64 64
  store double %453, ptr %454, align 8, !tbaa !75
  %455 = getelementptr inbounds i8, ptr %0, i64 2928
  %456 = getelementptr inbounds i8, ptr %49, i64 8
  %457 = load <2 x double>, ptr %455, align 8, !tbaa !76
  store <2 x double> %457, ptr %456, align 8, !tbaa !76
  %458 = getelementptr inbounds i8, ptr %0, i64 2920
  %459 = load i32, ptr %458, align 8, !tbaa !77
  %460 = sext i32 %459 to i64
  store i64 %460, ptr %49, align 8, !tbaa !78
  invoke void @_ZN9QpProblemIdE12runFromDenseElbb(ptr noundef nonnull align 8 dereferenceable(962) %49, i64 noundef %460, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %925 unwind label %480

461:                                              ; preds = %430, %429
  %462 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #11
  br label %942

463:                                              ; preds = %434, %433
  %464 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #11
  br label %942

465:                                              ; preds = %438, %437
  %466 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #11
  br label %942

467:                                              ; preds = %442, %441
  %468 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #11
  br label %942

469:                                              ; preds = %.lr.ph426, %472
  %.0270424 = phi i16 [ 0, %.lr.ph426 ], [ %473, %472 ]
  %470 = sext i16 %.0270424 to i64
  %471 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %448, i64 noundef %470)
          to label %472 unwind label %478

472:                                              ; preds = %469
  store double 0.000000e+00, ptr %471, align 8, !tbaa !76
  %473 = add i16 %.0270424, 1
  %474 = sext i16 %473 to i32
  %475 = load i32, ptr %103, align 4, !tbaa !35
  %476 = mul nsw i32 %475, 20
  %477 = icmp sgt i32 %476, %474
  br i1 %477, label %469, label %._crit_edge427, !llvm.loop !79

478:                                              ; preds = %469
  %479 = landingpad { ptr, i32 }
          cleanup
  br label %942

480:                                              ; preds = %501, %494, %488, %482, %._crit_edge427
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %942

482:                                              ; preds = %._crit_edge349
  %483 = load ptr, ptr @H_qpoases, align 8, !tbaa !80
  invoke void @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 8 dereferenceable(24) @qH)
          to label %484 unwind label %480

484:                                              ; preds = %482
  %485 = load i32, ptr %103, align 4, !tbaa !35
  %486 = trunc i32 %485 to i16
  %487 = mul i16 %486, 12
  invoke void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef %483, ptr noundef nonnull %54, i16 noundef signext %487, i16 noundef signext %487)
          to label %488 unwind label %525

488:                                              ; preds = %484
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #11
  %489 = load ptr, ptr @g_qpoases, align 8, !tbaa !80
  invoke void @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEC2INS0_IfLin1ELi1ELi0ELin1ELi1EEEEERKNS_9EigenBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 1 dereferenceable(1) @qg)
          to label %490 unwind label %480

490:                                              ; preds = %488
  %491 = load i32, ptr %103, align 4, !tbaa !35
  %492 = trunc i32 %491 to i16
  %493 = mul i16 %492, 12
  invoke void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef %489, ptr noundef nonnull %55, i16 noundef signext %493, i16 noundef signext 1)
          to label %494 unwind label %527

494:                                              ; preds = %490
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  %495 = load ptr, ptr @A_qpoases, align 8, !tbaa !80
  invoke void @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %56, ptr noundef nonnull align 8 dereferenceable(24) @fmat)
          to label %496 unwind label %480

496:                                              ; preds = %494
  %497 = load i32, ptr %103, align 4, !tbaa !35
  %498 = trunc i32 %497 to i16
  %499 = mul i16 %498, 20
  %500 = mul i16 %498, 12
  invoke void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef %495, ptr noundef nonnull %56, i16 noundef signext %499, i16 noundef signext %500)
          to label %501 unwind label %529

501:                                              ; preds = %496
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #11
  %502 = load ptr, ptr @ub_qpoases, align 8, !tbaa !80
  invoke void @_ZN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEC2INS0_IfLin1ELi1ELi0ELin1ELi1EEEEERKNS_9EigenBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 1 dereferenceable(1) @U_b)
          to label %503 unwind label %480

503:                                              ; preds = %501
  %504 = load i32, ptr %103, align 4, !tbaa !35
  %505 = trunc i32 %504 to i16
  %506 = mul i16 %505, 20
  invoke void @_Z14matrix_to_realPdN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEEss(ptr noundef %502, ptr noundef nonnull %57, i16 noundef signext %506, i16 noundef signext 1)
          to label %507 unwind label %531

507:                                              ; preds = %503
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #11
  %508 = load i32, ptr %103, align 4, !tbaa !35
  %509 = mul i32 %508, 20
  %510 = icmp sgt i32 %508, 0
  br i1 %510, label %.lr.ph352, label %._crit_edge353

.lr.ph352:                                        ; preds = %507
  %511 = load ptr, ptr @lb_qpoases, align 8, !tbaa !80
  %smax540 = call i32 @llvm.smax.i32(i32 %509, i32 1)
  %min.iters.check = icmp slt i32 %509, 18
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

scalar.ph.preheader:                              ; preds = %middle.block, %vector.scevcheck, %.lr.ph352
  %.0274350.ph = phi i16 [ 0, %vector.scevcheck ], [ 0, %.lr.ph352 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

vector.scevcheck:                                 ; preds = %.lr.ph352
  %512 = add nsw i32 %509, -1
  %513 = trunc i32 %512 to i16
  %514 = icmp ugt i16 %513, 32766
  %515 = icmp ugt i32 %512, 32767
  %516 = or i1 %514, %515
  br i1 %516, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.scevcheck
  %n.vec = and i32 %smax540, 65532
  %ind.end = trunc nuw i32 %n.vec to i16
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = zext i32 %index to i64
  %sext541 = shl i64 %offset.idx, 48
  %517 = ashr exact i64 %sext541, 45
  %518 = getelementptr inbounds i8, ptr %511, i64 %517
  %519 = getelementptr inbounds i8, ptr %518, i64 16
  store <2 x double> zeroinitializer, ptr %518, align 8, !tbaa !76
  store <2 x double> zeroinitializer, ptr %519, align 8, !tbaa !76
  %index.next = add nuw i32 %index, 4
  %520 = icmp eq i32 %index.next, %n.vec
  br i1 %520, label %middle.block, label %vector.body, !llvm.loop !81

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i32 %smax540, %n.vec
  br i1 %cmp.n, label %._crit_edge353, label %scalar.ph.preheader

._crit_edge353:                                   ; preds = %scalar.ph, %middle.block, %507
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %58) #11
  store i32 100, ptr %58, align 4, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %59) #11
  %sext = mul i32 %508, 786432
  %521 = ashr exact i32 %sext, 16
  store i32 %521, ptr %59, align 4, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #11
  %sext299 = mul i32 %508, 1310720
  %522 = ashr exact i32 %sext299, 16
  store i32 %522, ptr %60, align 4, !tbaa !42
  %523 = icmp sgt i32 %522, 0
  br i1 %523, label %.lr.ph356.preheader, label %.preheader332

.lr.ph356.preheader:                              ; preds = %._crit_edge353
  %524 = zext nneg i32 %522 to i64
  call void @llvm.memset.p0.i64(ptr nonnull align 16 @con_elim, i8 0, i64 %524, i1 false), !tbaa !38
  br label %.preheader332

525:                                              ; preds = %484
  %526 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #11
  br label %942

527:                                              ; preds = %490
  %528 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  br label %942

529:                                              ; preds = %496
  %530 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %56) #11
  br label %942

531:                                              ; preds = %503
  %532 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIfLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #11
  br label %942

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.0274350 = phi i16 [ %535, %scalar.ph ], [ %.0274350.ph, %scalar.ph.preheader ]
  %533 = sext i16 %.0274350 to i64
  %534 = getelementptr inbounds double, ptr %511, i64 %533
  store double 0.000000e+00, ptr %534, align 8, !tbaa !76
  %535 = add i16 %.0274350, 1
  %536 = sext i16 %535 to i32
  %537 = icmp sgt i32 %509, %536
  br i1 %537, label %scalar.ph, label %._crit_edge353, !llvm.loop !84

.preheader332:                                    ; preds = %.lr.ph356.preheader, %._crit_edge353
  %538 = icmp sgt i32 %521, 0
  br i1 %538, label %.lr.ph358.preheader, label %.preheader331

.lr.ph358.preheader:                              ; preds = %.preheader332
  %539 = zext nneg i32 %521 to i64
  call void @llvm.memset.p0.i64(ptr nonnull align 16 @var_elim, i8 0, i64 %539, i1 false), !tbaa !38
  br label %.preheader331

.preheader331:                                    ; preds = %.lr.ph358.preheader, %.preheader332
  br i1 %523, label %.lr.ph363, label %._crit_edge364

.lr.ph363:                                        ; preds = %.preheader331
  %540 = sext i32 %521 to i64
  %wide.trip.count446 = zext nneg i32 %522 to i64
  %wide.trip.count = zext nneg i32 %521 to i64
  br label %548

._crit_edge364.loopexit:                          ; preds = %.loopexit330
  %.pre = load i32, ptr %59, align 4, !tbaa !42
  br label %._crit_edge364

._crit_edge364:                                   ; preds = %._crit_edge364.loopexit, %.preheader331
  %541 = phi i32 [ %.pre, %._crit_edge364.loopexit ], [ %521, %.preheader331 ]
  %542 = zext i32 %541 to i64
  %543 = call ptr @llvm.stacksave.p0()
  %544 = alloca i32, i64 %542, align 16
  %545 = load i32, ptr %60, align 4, !tbaa !42
  %546 = zext i32 %545 to i64
  %547 = alloca i32, i64 %546, align 16
  br i1 %538, label %.lr.ph368.preheader, label %.preheader329

.lr.ph368.preheader:                              ; preds = %._crit_edge364
  %wide.trip.count451 = zext nneg i32 %521 to i64
  br label %.lr.ph368

548:                                              ; preds = %.lr.ph363, %.loopexit330
  %indvars.iv443 = phi i64 [ 0, %.lr.ph363 ], [ %indvars.iv.next444, %.loopexit330 ]
  %549 = load ptr, ptr @lb_qpoases, align 8, !tbaa !80
  %550 = getelementptr inbounds double, ptr %549, i64 %indvars.iv443
  %551 = load double, ptr %550, align 8, !tbaa !76
  %552 = fptrunc double %551 to float
  %553 = call noundef signext i8 @_Z9near_zerof(float noundef %552)
  %.not315 = icmp eq i8 %553, 0
  br i1 %.not315, label %.loopexit330, label %554

554:                                              ; preds = %548
  %555 = load ptr, ptr @ub_qpoases, align 8, !tbaa !80
  %556 = getelementptr inbounds double, ptr %555, i64 %indvars.iv443
  %557 = load double, ptr %556, align 8, !tbaa !76
  %558 = fptrunc double %557 to float
  %559 = call noundef signext i8 @_Z9near_zerof(float noundef %558)
  %.not316 = icmp eq i8 %559, 0
  br i1 %.not316, label %.loopexit330, label %560

560:                                              ; preds = %554
  %561 = load ptr, ptr @A_qpoases, align 8, !tbaa !80
  %562 = mul nsw i64 %indvars.iv443, %540
  %563 = getelementptr inbounds double, ptr %561, i64 %562
  br i1 %538, label %.lr.ph361, label %.loopexit330

.lr.ph361:                                        ; preds = %560, %587
  %indvars.iv = phi i64 [ %indvars.iv.next, %587 ], [ 0, %560 ]
  %564 = getelementptr inbounds double, ptr %563, i64 %indvars.iv
  %565 = load double, ptr %564, align 8, !tbaa !76
  %566 = fptrunc double %565 to float
  %567 = call noundef signext i8 @_Z8near_onef(float noundef %566)
  %.not317 = icmp eq i8 %567, 0
  br i1 %.not317, label %587, label %568

568:                                              ; preds = %.lr.ph361
  %569 = load i32, ptr %59, align 4, !tbaa !42
  %570 = add nsw i32 %569, -3
  store i32 %570, ptr %59, align 4, !tbaa !42
  %571 = load i32, ptr %60, align 4, !tbaa !42
  %572 = add nsw i32 %571, -5
  store i32 %572, ptr %60, align 4, !tbaa !42
  %573 = trunc i64 %indvars.iv to i32
  %574 = mul i32 %573, 5
  %575 = udiv i32 %574, 3
  %576 = add nsw i32 %575, -3
  %577 = add nsw i64 %indvars.iv, -2
  %578 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %577
  store i8 1, ptr %578, align 1, !tbaa !38
  %579 = add nsw i64 %indvars.iv, -1
  %580 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %579
  store i8 1, ptr %580, align 1, !tbaa !38
  %581 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %indvars.iv
  store i8 1, ptr %581, align 1, !tbaa !38
  %582 = sext i32 %576 to i64
  %583 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %582
  store <4 x i8> <i8 1, i8 1, i8 1, i8 1>, ptr %583, align 1, !tbaa !38
  %584 = add nuw nsw i32 %575, 1
  %585 = zext nneg i32 %584 to i64
  %586 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %585
  store i8 1, ptr %586, align 1, !tbaa !38
  br label %587

587:                                              ; preds = %.lr.ph361, %568
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit330, label %.lr.ph361, !llvm.loop !85

.loopexit330:                                     ; preds = %587, %560, %548, %554
  %indvars.iv.next444 = add nuw nsw i64 %indvars.iv443, 1
  %exitcond447.not = icmp eq i64 %indvars.iv.next444, %wide.trip.count446
  br i1 %exitcond447.not, label %._crit_edge364.loopexit, label %548, !llvm.loop !86

.preheader329:                                    ; preds = %600, %._crit_edge364
  br i1 %523, label %.lr.ph371.preheader, label %.preheader328

.lr.ph371.preheader:                              ; preds = %.preheader329
  %wide.trip.count456 = zext nneg i32 %522 to i64
  br label %.lr.ph371

.lr.ph368:                                        ; preds = %.lr.ph368.preheader, %600
  %indvars.iv448 = phi i64 [ 0, %.lr.ph368.preheader ], [ %indvars.iv.next449, %600 ]
  %.0256365 = phi i32 [ 0, %.lr.ph368.preheader ], [ %.1257, %600 ]
  %588 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %indvars.iv448
  %589 = load i8, ptr %588, align 1, !tbaa !38
  %.not314 = icmp eq i8 %589, 0
  br i1 %.not314, label %590, label %600

590:                                              ; preds = %.lr.ph368
  %591 = load i32, ptr %59, align 4, !tbaa !42
  %592 = icmp slt i32 %.0256365, %591
  br i1 %592, label %595, label %593

593:                                              ; preds = %590
  %594 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.34)
  br label %595

595:                                              ; preds = %593, %590
  %596 = sext i32 %.0256365 to i64
  %597 = getelementptr inbounds i32, ptr %544, i64 %596
  %598 = trunc nuw nsw i64 %indvars.iv448 to i32
  store i32 %598, ptr %597, align 4, !tbaa !42
  %599 = add nsw i32 %.0256365, 1
  br label %600

600:                                              ; preds = %.lr.ph368, %595
  %.1257 = phi i32 [ %.0256365, %.lr.ph368 ], [ %599, %595 ]
  %indvars.iv.next449 = add nuw nsw i64 %indvars.iv448, 1
  %exitcond452.not = icmp eq i64 %indvars.iv.next449, %wide.trip.count451
  br i1 %exitcond452.not, label %.preheader329, label %.lr.ph368, !llvm.loop !87

.preheader328:                                    ; preds = %622, %.preheader329
  %601 = load i32, ptr %59, align 4, !tbaa !42
  %602 = icmp sgt i32 %601, 0
  br i1 %602, label %.lr.ph377, label %.preheader327.thread

.lr.ph377:                                        ; preds = %.preheader328
  %603 = load ptr, ptr @g_qpoases, align 8, !tbaa !80
  %604 = load ptr, ptr @g_red, align 8, !tbaa !80
  %605 = load ptr, ptr @H_qpoases, align 8
  %606 = load ptr, ptr @H_red, align 8
  %607 = zext nneg i32 %601 to i64
  %608 = add nsw i64 %607, -1
  %xtraiter = and i64 %607, 1
  %609 = icmp eq i64 %608, 0
  %unroll_iter = and i64 %607, 2147483646
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br label %.lr.ph374

.lr.ph371:                                        ; preds = %.lr.ph371.preheader, %622
  %indvars.iv453 = phi i64 [ 0, %.lr.ph371.preheader ], [ %indvars.iv.next454, %622 ]
  %.2258369 = phi i32 [ 0, %.lr.ph371.preheader ], [ %.3259, %622 ]
  %610 = getelementptr inbounds [2000 x i8], ptr @con_elim, i64 0, i64 %indvars.iv453
  %611 = load i8, ptr %610, align 1, !tbaa !38
  %.not313 = icmp eq i8 %611, 0
  br i1 %.not313, label %612, label %622

612:                                              ; preds = %.lr.ph371
  %613 = load i32, ptr %60, align 4, !tbaa !42
  %614 = icmp slt i32 %.2258369, %613
  br i1 %614, label %617, label %615

615:                                              ; preds = %612
  %616 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.34)
  br label %617

617:                                              ; preds = %615, %612
  %618 = sext i32 %.2258369 to i64
  %619 = getelementptr inbounds i32, ptr %547, i64 %618
  %620 = trunc nuw nsw i64 %indvars.iv453 to i32
  store i32 %620, ptr %619, align 4, !tbaa !42
  %621 = add nsw i32 %.2258369, 1
  br label %622

622:                                              ; preds = %.lr.ph371, %617
  %.3259 = phi i32 [ %.2258369, %.lr.ph371 ], [ %621, %617 ]
  %indvars.iv.next454 = add nuw nsw i64 %indvars.iv453, 1
  %exitcond457.not = icmp eq i64 %indvars.iv.next454, %wide.trip.count456
  br i1 %exitcond457.not, label %.preheader328, label %.lr.ph371, !llvm.loop !88

.preheader327:                                    ; preds = %._crit_edge375
  %623 = load i32, ptr %60, align 4, !tbaa !42
  %624 = icmp sgt i32 %623, 0
  br i1 %624, label %.preheader326.lr.ph, label %._crit_edge386

.preheader327.thread:                             ; preds = %.preheader328
  %625 = load i32, ptr %60, align 4, !tbaa !42
  %626 = icmp sgt i32 %625, 0
  br i1 %626, label %.lr.ph385, label %._crit_edge386

.preheader326.lr.ph:                              ; preds = %.preheader327
  %627 = load ptr, ptr @A_qpoases, align 8
  %628 = load ptr, ptr @A_red, align 8
  br i1 %602, label %.preheader326.us.preheader, label %.lr.ph385

.preheader326.us.preheader:                       ; preds = %.preheader326.lr.ph
  %629 = zext nneg i32 %601 to i64
  %wide.trip.count476 = zext nneg i32 %623 to i64
  %xtraiter546 = and i64 %607, 1
  %630 = icmp eq i64 %608, 0
  %unroll_iter548 = and i64 %607, 2147483646
  %lcmp.mod547.not = icmp eq i64 %xtraiter546, 0
  br label %.preheader326.us

.preheader326.us:                                 ; preds = %.preheader326.us.preheader, %._crit_edge381.us
  %indvars.iv473 = phi i64 [ 0, %.preheader326.us.preheader ], [ %indvars.iv.next474, %._crit_edge381.us ]
  %631 = getelementptr inbounds i32, ptr %547, i64 %indvars.iv473
  %632 = load i32, ptr %631, align 4, !tbaa !42
  %633 = mul nsw i32 %632, %521
  %634 = mul nuw nsw i64 %indvars.iv473, %629
  %invariant.gep535 = getelementptr inbounds double, ptr %628, i64 %634
  br i1 %630, label %._crit_edge381.us.unr-lcssa, label %.preheader326.us.new

.preheader326.us.new:                             ; preds = %.preheader326.us, %.preheader326.us.new
  %indvars.iv468 = phi i64 [ %indvars.iv.next469.1, %.preheader326.us.new ], [ 0, %.preheader326.us ]
  %niter549 = phi i64 [ %niter549.next.1, %.preheader326.us.new ], [ 0, %.preheader326.us ]
  %635 = getelementptr inbounds i32, ptr %544, i64 %indvars.iv468
  %636 = load i32, ptr %635, align 8, !tbaa !42
  %637 = add nsw i32 %633, %636
  %638 = sext i32 %637 to i64
  %639 = getelementptr inbounds double, ptr %627, i64 %638
  %640 = load double, ptr %639, align 8, !tbaa !76
  %641 = fptrunc double %640 to float
  %642 = fpext float %641 to double
  %gep536 = getelementptr inbounds double, ptr %invariant.gep535, i64 %indvars.iv468
  store double %642, ptr %gep536, align 8, !tbaa !76
  %indvars.iv.next469 = or disjoint i64 %indvars.iv468, 1
  %643 = getelementptr inbounds i32, ptr %544, i64 %indvars.iv.next469
  %644 = load i32, ptr %643, align 4, !tbaa !42
  %645 = add nsw i32 %633, %644
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds double, ptr %627, i64 %646
  %648 = load double, ptr %647, align 8, !tbaa !76
  %649 = fptrunc double %648 to float
  %650 = fpext float %649 to double
  %gep536.1 = getelementptr inbounds double, ptr %invariant.gep535, i64 %indvars.iv.next469
  store double %650, ptr %gep536.1, align 8, !tbaa !76
  %indvars.iv.next469.1 = add nuw nsw i64 %indvars.iv468, 2
  %niter549.next.1 = add i64 %niter549, 2
  %niter549.ncmp.1 = icmp eq i64 %niter549.next.1, %unroll_iter548
  br i1 %niter549.ncmp.1, label %._crit_edge381.us.unr-lcssa, label %.preheader326.us.new, !llvm.loop !89

._crit_edge381.us.unr-lcssa:                      ; preds = %.preheader326.us.new, %.preheader326.us
  %indvars.iv468.unr = phi i64 [ 0, %.preheader326.us ], [ %indvars.iv.next469.1, %.preheader326.us.new ]
  br i1 %lcmp.mod547.not, label %._crit_edge381.us, label %._crit_edge381.us.epilog-lcssa

._crit_edge381.us.epilog-lcssa:                   ; preds = %._crit_edge381.us.unr-lcssa
  %651 = getelementptr inbounds i32, ptr %544, i64 %indvars.iv468.unr
  %652 = load i32, ptr %651, align 4, !tbaa !42
  %653 = add nsw i32 %633, %652
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds double, ptr %627, i64 %654
  %656 = load double, ptr %655, align 8, !tbaa !76
  %657 = fptrunc double %656 to float
  %658 = fpext float %657 to double
  %gep536.epil = getelementptr inbounds double, ptr %invariant.gep535, i64 %indvars.iv468.unr
  store double %658, ptr %gep536.epil, align 8, !tbaa !76
  br label %._crit_edge381.us

._crit_edge381.us:                                ; preds = %._crit_edge381.us.unr-lcssa, %._crit_edge381.us.epilog-lcssa
  %indvars.iv.next474 = add nuw nsw i64 %indvars.iv473, 1
  %exitcond477.not = icmp eq i64 %indvars.iv.next474, %wide.trip.count476
  br i1 %exitcond477.not, label %.lr.ph385, label %.preheader326.us, !llvm.loop !90

.lr.ph374:                                        ; preds = %._crit_edge375, %.lr.ph377
  %indvars.iv463 = phi i64 [ 0, %.lr.ph377 ], [ %indvars.iv.next464, %._crit_edge375 ]
  %659 = getelementptr inbounds i32, ptr %544, i64 %indvars.iv463
  %660 = load i32, ptr %659, align 4, !tbaa !42
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds double, ptr %603, i64 %661
  %663 = load double, ptr %662, align 8, !tbaa !76
  %664 = getelementptr inbounds double, ptr %604, i64 %indvars.iv463
  store double %663, ptr %664, align 8, !tbaa !76
  %665 = mul nsw i32 %660, %521
  %666 = mul nuw nsw i64 %indvars.iv463, %607
  %invariant.gep = getelementptr inbounds double, ptr %606, i64 %666
  br i1 %609, label %._crit_edge375.unr-lcssa, label %.lr.ph374.new

._crit_edge375.unr-lcssa:                         ; preds = %.lr.ph374.new, %.lr.ph374
  %indvars.iv458.unr = phi i64 [ 0, %.lr.ph374 ], [ %indvars.iv.next459.1, %.lr.ph374.new ]
  br i1 %lcmp.mod.not, label %._crit_edge375, label %._crit_edge375.epilog-lcssa

._crit_edge375.epilog-lcssa:                      ; preds = %._crit_edge375.unr-lcssa
  %667 = getelementptr inbounds i32, ptr %544, i64 %indvars.iv458.unr
  %668 = load i32, ptr %667, align 4, !tbaa !42
  %669 = add nsw i32 %668, %665
  %670 = sext i32 %669 to i64
  %671 = getelementptr inbounds double, ptr %605, i64 %670
  %672 = load double, ptr %671, align 8, !tbaa !76
  %gep.epil = getelementptr inbounds double, ptr %invariant.gep, i64 %indvars.iv458.unr
  store double %672, ptr %gep.epil, align 8, !tbaa !76
  br label %._crit_edge375

._crit_edge375:                                   ; preds = %._crit_edge375.unr-lcssa, %._crit_edge375.epilog-lcssa
  %indvars.iv.next464 = add nuw nsw i64 %indvars.iv463, 1
  %exitcond467.not = icmp eq i64 %indvars.iv.next464, %607
  br i1 %exitcond467.not, label %.preheader327, label %.lr.ph374, !llvm.loop !91

.lr.ph374.new:                                    ; preds = %.lr.ph374, %.lr.ph374.new
  %indvars.iv458 = phi i64 [ %indvars.iv.next459.1, %.lr.ph374.new ], [ 0, %.lr.ph374 ]
  %niter = phi i64 [ %niter.next.1, %.lr.ph374.new ], [ 0, %.lr.ph374 ]
  %673 = getelementptr inbounds i32, ptr %544, i64 %indvars.iv458
  %674 = load i32, ptr %673, align 8, !tbaa !42
  %675 = add nsw i32 %674, %665
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds double, ptr %605, i64 %676
  %678 = load double, ptr %677, align 8, !tbaa !76
  %gep = getelementptr inbounds double, ptr %invariant.gep, i64 %indvars.iv458
  store double %678, ptr %gep, align 8, !tbaa !76
  %indvars.iv.next459 = or disjoint i64 %indvars.iv458, 1
  %679 = getelementptr inbounds i32, ptr %544, i64 %indvars.iv.next459
  %680 = load i32, ptr %679, align 4, !tbaa !42
  %681 = add nsw i32 %680, %665
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds double, ptr %605, i64 %682
  %684 = load double, ptr %683, align 8, !tbaa !76
  %gep.1 = getelementptr inbounds double, ptr %invariant.gep, i64 %indvars.iv.next459
  store double %684, ptr %gep.1, align 8, !tbaa !76
  %indvars.iv.next459.1 = add nuw nsw i64 %indvars.iv458, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge375.unr-lcssa, label %.lr.ph374.new, !llvm.loop !92

.lr.ph385:                                        ; preds = %._crit_edge381.us, %.preheader327.thread, %.preheader326.lr.ph
  %685 = phi i32 [ %623, %.preheader326.lr.ph ], [ %625, %.preheader327.thread ], [ %623, %._crit_edge381.us ]
  %686 = load ptr, ptr @ub_qpoases, align 8, !tbaa !80
  %687 = load ptr, ptr @ub_red, align 8, !tbaa !80
  %688 = load ptr, ptr @lb_qpoases, align 8, !tbaa !80
  %689 = load ptr, ptr @lb_red, align 8, !tbaa !80
  %wide.trip.count481 = zext nneg i32 %685 to i64
  %xtraiter551 = and i64 %wide.trip.count481, 1
  %690 = icmp eq i32 %685, 1
  br i1 %690, label %._crit_edge386.loopexit.unr-lcssa, label %.lr.ph385.new

.lr.ph385.new:                                    ; preds = %.lr.ph385
  %unroll_iter553 = and i64 %wide.trip.count481, 2147483646
  br label %703

._crit_edge386.loopexit.unr-lcssa:                ; preds = %703, %.lr.ph385
  %indvars.iv478.unr = phi i64 [ 0, %.lr.ph385 ], [ %indvars.iv.next479.1, %703 ]
  %lcmp.mod552.not = icmp eq i64 %xtraiter551, 0
  br i1 %lcmp.mod552.not, label %._crit_edge386, label %._crit_edge386.loopexit.epilog-lcssa

._crit_edge386.loopexit.epilog-lcssa:             ; preds = %._crit_edge386.loopexit.unr-lcssa
  %691 = getelementptr inbounds i32, ptr %547, i64 %indvars.iv478.unr
  %692 = load i32, ptr %691, align 4, !tbaa !42
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds double, ptr %686, i64 %693
  %695 = load double, ptr %694, align 8, !tbaa !76
  %696 = getelementptr inbounds double, ptr %687, i64 %indvars.iv478.unr
  store double %695, ptr %696, align 8, !tbaa !76
  %697 = getelementptr inbounds double, ptr %688, i64 %693
  %698 = load double, ptr %697, align 8, !tbaa !76
  %699 = getelementptr inbounds double, ptr %689, i64 %indvars.iv478.unr
  store double %698, ptr %699, align 8, !tbaa !76
  br label %._crit_edge386

._crit_edge386:                                   ; preds = %._crit_edge386.loopexit.epilog-lcssa, %._crit_edge386.loopexit.unr-lcssa, %.preheader327, %.preheader327.thread
  %700 = phi i32 [ %623, %.preheader327 ], [ %625, %.preheader327.thread ], [ %685, %._crit_edge386.loopexit.unr-lcssa ], [ %685, %._crit_edge386.loopexit.epilog-lcssa ]
  %701 = load i32, ptr %377, align 8, !tbaa !43
  %702 = icmp eq i32 %701, 0
  br i1 %702, label %722, label %782

703:                                              ; preds = %703, %.lr.ph385.new
  %indvars.iv478 = phi i64 [ 0, %.lr.ph385.new ], [ %indvars.iv.next479.1, %703 ]
  %niter554 = phi i64 [ 0, %.lr.ph385.new ], [ %niter554.next.1, %703 ]
  %704 = getelementptr inbounds i32, ptr %547, i64 %indvars.iv478
  %705 = load i32, ptr %704, align 8, !tbaa !42
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds double, ptr %686, i64 %706
  %708 = load double, ptr %707, align 8, !tbaa !76
  %709 = getelementptr inbounds double, ptr %687, i64 %indvars.iv478
  store double %708, ptr %709, align 8, !tbaa !76
  %710 = getelementptr inbounds double, ptr %688, i64 %706
  %711 = load double, ptr %710, align 8, !tbaa !76
  %712 = getelementptr inbounds double, ptr %689, i64 %indvars.iv478
  store double %711, ptr %712, align 8, !tbaa !76
  %indvars.iv.next479 = or disjoint i64 %indvars.iv478, 1
  %713 = getelementptr inbounds i32, ptr %547, i64 %indvars.iv.next479
  %714 = load i32, ptr %713, align 4, !tbaa !42
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds double, ptr %686, i64 %715
  %717 = load double, ptr %716, align 8, !tbaa !76
  %718 = getelementptr inbounds double, ptr %687, i64 %indvars.iv.next479
  store double %717, ptr %718, align 8, !tbaa !76
  %719 = getelementptr inbounds double, ptr %688, i64 %715
  %720 = load double, ptr %719, align 8, !tbaa !76
  %721 = getelementptr inbounds double, ptr %689, i64 %indvars.iv.next479
  store double %720, ptr %721, align 8, !tbaa !76
  %indvars.iv.next479.1 = add nuw nsw i64 %indvars.iv478, 2
  %niter554.next.1 = add i64 %niter554, 2
  %niter554.ncmp.1 = icmp eq i64 %niter554.next.1, %unroll_iter553
  br i1 %niter554.ncmp.1, label %._crit_edge386.loopexit.unr-lcssa, label %703, !llvm.loop !93

722:                                              ; preds = %._crit_edge386
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #11
  invoke void @_ZN5TimerC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61)
          to label %723 unwind label %744

723:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 1064, ptr nonnull %62) #11
  %724 = load i32, ptr %59, align 4, !tbaa !42
  %725 = load i32, ptr %60, align 4, !tbaa !42
  invoke void @_ZN7qpOASES8QProblemC1EiiNS_11HessianTypeENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %62, i32 noundef %724, i32 noundef %725, i32 noundef 6, i32 noundef 1)
          to label %726 unwind label %746

726:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %63) #11
  invoke void @_ZN7qpOASES7OptionsC1Ev(ptr noundef nonnull align 8 dereferenceable(220) %63)
          to label %727 unwind label %748

727:                                              ; preds = %726
  %728 = invoke noundef i32 @_ZN7qpOASES7Options8setToMPCEv(ptr noundef nonnull align 8 dereferenceable(220) %63)
          to label %729 unwind label %750

729:                                              ; preds = %727
  store i32 0, ptr %63, align 8, !tbaa !94
  %730 = invoke noundef i32 @_ZN7qpOASES9QProblemB10setOptionsERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(800) %62, ptr noundef nonnull align 8 dereferenceable(220) %63)
          to label %731 unwind label %750

731:                                              ; preds = %729
  %732 = load ptr, ptr @H_red, align 8, !tbaa !80
  %733 = load ptr, ptr @g_red, align 8, !tbaa !80
  %734 = load ptr, ptr @A_red, align 8, !tbaa !80
  %735 = load ptr, ptr @lb_red, align 8, !tbaa !80
  %736 = load ptr, ptr @ub_red, align 8, !tbaa !80
  %737 = invoke noundef i32 @_ZN7qpOASES8QProblem4initEPKdS2_S2_S2_S2_S2_S2_RiPdS2_S2_PKNS_6BoundsEPKNS_11ConstraintsES2_(ptr noundef nonnull align 8 dereferenceable(1064) %62, ptr noundef %732, ptr noundef %733, ptr noundef %734, ptr noundef null, ptr noundef null, ptr noundef %735, ptr noundef %736, ptr noundef nonnull align 4 dereferenceable(4) %58, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %738 unwind label %752

738:                                              ; preds = %731
  %739 = load ptr, ptr @q_red, align 8, !tbaa !80
  %740 = invoke noundef i32 @_ZNK7qpOASES9QProblemB17getPrimalSolutionEPd(ptr noundef nonnull align 8 dereferenceable(800) %62, ptr noundef %739)
          to label %741 unwind label %754

741:                                              ; preds = %738
  %.not311 = icmp eq i32 %740, 0
  br i1 %.not311, label %756, label %742

742:                                              ; preds = %741
  %743 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.35)
  br label %756

744:                                              ; preds = %722
  %745 = landingpad { ptr, i32 }
          cleanup
  br label %781

746:                                              ; preds = %723
  %747 = landingpad { ptr, i32 }
          cleanup
  br label %780

748:                                              ; preds = %726
  %749 = landingpad { ptr, i32 }
          cleanup
  br label %779

750:                                              ; preds = %729, %727
  %751 = landingpad { ptr, i32 }
          cleanup
  br label %778

752:                                              ; preds = %731
  %753 = landingpad { ptr, i32 }
          cleanup
  br label %778

754:                                              ; preds = %738
  %755 = landingpad { ptr, i32 }
          cleanup
  br label %778

756:                                              ; preds = %742, %741
  br i1 %538, label %.lr.ph422, label %._crit_edge423

.lr.ph422:                                        ; preds = %756
  %757 = load ptr, ptr @q_soln, align 8
  %758 = load ptr, ptr @q_red, align 8
  %wide.trip.count520 = zext nneg i32 %521 to i64
  br label %759

._crit_edge423:                                   ; preds = %776, %756
  call void @_ZN7qpOASES7OptionsD1Ev(ptr noundef nonnull align 8 dereferenceable(220) %63) #11
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %63) #11
  call void @_ZN7qpOASES8QProblemD1Ev(ptr noundef nonnull align 8 dereferenceable(1064) %62) #11
  call void @llvm.lifetime.end.p0(i64 1064, ptr nonnull %62) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #11
  br label %923

759:                                              ; preds = %776, %.lr.ph422
  %indvars.iv517 = phi i64 [ 0, %.lr.ph422 ], [ %indvars.iv.next518.1, %776 ]
  %.4260419 = phi i32 [ 0, %.lr.ph422 ], [ %.5261.1, %776 ]
  %niter559 = phi i64 [ 0, %.lr.ph422 ], [ %niter559.next.1, %776 ]
  %760 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %indvars.iv517
  %761 = load i8, ptr %760, align 2, !tbaa !38
  %.not312 = icmp eq i8 %761, 0
  br i1 %.not312, label %762, label %767

762:                                              ; preds = %759
  %763 = sext i32 %.4260419 to i64
  %764 = getelementptr inbounds double, ptr %758, i64 %763
  %765 = load double, ptr %764, align 8, !tbaa !76
  %766 = add nsw i32 %.4260419, 1
  br label %767

767:                                              ; preds = %759, %762
  %.sink = phi double [ %765, %762 ], [ 0.000000e+00, %759 ]
  %.5261 = phi i32 [ %766, %762 ], [ %.4260419, %759 ]
  %768 = getelementptr inbounds double, ptr %757, i64 %indvars.iv517
  store double %.sink, ptr %768, align 8
  %indvars.iv.next518 = or disjoint i64 %indvars.iv517, 1
  %769 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %indvars.iv.next518
  %770 = load i8, ptr %769, align 1, !tbaa !38
  %.not312.1 = icmp eq i8 %770, 0
  br i1 %.not312.1, label %771, label %776

771:                                              ; preds = %767
  %772 = sext i32 %.5261 to i64
  %773 = getelementptr inbounds double, ptr %758, i64 %772
  %774 = load double, ptr %773, align 8, !tbaa !76
  %775 = add nsw i32 %.5261, 1
  br label %776

776:                                              ; preds = %771, %767
  %.sink.1 = phi double [ %774, %771 ], [ 0.000000e+00, %767 ]
  %.5261.1 = phi i32 [ %775, %771 ], [ %.5261, %767 ]
  %777 = getelementptr inbounds double, ptr %757, i64 %indvars.iv.next518
  store double %.sink.1, ptr %777, align 8
  %indvars.iv.next518.1 = add nuw nsw i64 %indvars.iv517, 2
  %niter559.next.1 = add i64 %niter559, 2
  %niter559.ncmp.1 = icmp eq i64 %niter559.next.1, %wide.trip.count520
  br i1 %niter559.ncmp.1, label %._crit_edge423, label %759, !llvm.loop !99

778:                                              ; preds = %752, %754, %750
  %.pn304.pn = phi { ptr, i32 } [ %751, %750 ], [ %755, %754 ], [ %753, %752 ]
  call void @_ZN7qpOASES7OptionsD1Ev(ptr noundef nonnull align 8 dereferenceable(220) %63) #11
  br label %779

779:                                              ; preds = %778, %748
  %.pn304.pn.pn = phi { ptr, i32 } [ %.pn304.pn, %778 ], [ %749, %748 ]
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %63) #11
  call void @_ZN7qpOASES8QProblemD1Ev(ptr noundef nonnull align 8 dereferenceable(1064) %62) #11
  br label %780

780:                                              ; preds = %779, %746
  %.pn304.pn.pn.pn = phi { ptr, i32 } [ %.pn304.pn.pn, %779 ], [ %747, %746 ]
  call void @llvm.lifetime.end.p0(i64 1064, ptr nonnull %62) #11
  br label %781

781:                                              ; preds = %780, %744
  %.pn304.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn304.pn.pn.pn, %780 ], [ %745, %744 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #11
  br label %924

782:                                              ; preds = %._crit_edge386
  call void @llvm.lifetime.start.p0(i64 968, ptr nonnull %64) #11
  %783 = sext i32 %601 to i64
  %784 = sext i32 %700 to i64
  invoke void @_ZN9QpProblemIdEC2Ellb(ptr noundef nonnull align 8 dereferenceable(962) %64, i64 noundef %783, i64 noundef %784, i1 noundef zeroext true)
          to label %785 unwind label %795

785:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %65) #11
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %786 unwind label %797

786:                                              ; preds = %785
  %787 = getelementptr inbounds i8, ptr %64, i64 72
  %788 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %787, ptr noundef nonnull align 8 dereferenceable(24) %65) #11
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65) #11
  %789 = load i32, ptr %60, align 4, !tbaa !42
  %790 = icmp sgt i32 %789, 0
  br i1 %790, label %.preheader324.preheader, label %._crit_edge394

.preheader324.preheader:                          ; preds = %786
  %.pre525 = load i32, ptr %59, align 4, !tbaa !42
  br label %.preheader324

.preheader324:                                    ; preds = %.preheader324.preheader, %._crit_edge390
  %791 = phi i32 [ %789, %.preheader324.preheader ], [ %800, %._crit_edge390 ]
  %792 = phi i32 [ %.pre525, %.preheader324.preheader ], [ %801, %._crit_edge390 ]
  %indvars.iv490 = phi i64 [ 0, %.preheader324.preheader ], [ %indvars.iv.next491, %._crit_edge390 ]
  %.0215392 = phi i32 [ 0, %.preheader324.preheader ], [ %.1.lcssa, %._crit_edge390 ]
  %793 = icmp sgt i32 %792, 0
  br i1 %793, label %.lr.ph389, label %._crit_edge390

.lr.ph389:                                        ; preds = %.preheader324
  %794 = sext i32 %.0215392 to i64
  br label %804

._crit_edge394:                                   ; preds = %._crit_edge390, %786
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %66) #11
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2IiiEERKT_RKT0_(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 4 dereferenceable(4) %59, ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %815 unwind label %823

795:                                              ; preds = %782
  %796 = landingpad { ptr, i32 }
          cleanup
  br label %922

797:                                              ; preds = %785
  %798 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65) #11
  br label %921

._crit_edge390.loopexit:                          ; preds = %809
  %799 = trunc nsw i64 %indvars.iv.next486 to i32
  %.pre526 = load i32, ptr %60, align 4, !tbaa !42
  br label %._crit_edge390

._crit_edge390:                                   ; preds = %._crit_edge390.loopexit, %.preheader324
  %800 = phi i32 [ %791, %.preheader324 ], [ %.pre526, %._crit_edge390.loopexit ]
  %801 = phi i32 [ %792, %.preheader324 ], [ %810, %._crit_edge390.loopexit ]
  %.1.lcssa = phi i32 [ %.0215392, %.preheader324 ], [ %799, %._crit_edge390.loopexit ]
  %indvars.iv.next491 = add nuw nsw i64 %indvars.iv490, 1
  %802 = sext i32 %800 to i64
  %803 = icmp slt i64 %indvars.iv.next491, %802
  br i1 %803, label %.preheader324, label %._crit_edge394, !llvm.loop !100

804:                                              ; preds = %.lr.ph389, %809
  %indvars.iv485 = phi i64 [ %794, %.lr.ph389 ], [ %indvars.iv.next486, %809 ]
  %indvars.iv483 = phi i64 [ 0, %.lr.ph389 ], [ %indvars.iv.next484, %809 ]
  %805 = load ptr, ptr @A_red, align 8, !tbaa !80
  %806 = getelementptr inbounds double, ptr %805, i64 %indvars.iv485
  %807 = load double, ptr %806, align 8, !tbaa !76
  %808 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %787, i64 noundef %indvars.iv490, i64 noundef %indvars.iv483)
          to label %809 unwind label %813

809:                                              ; preds = %804
  %indvars.iv.next486 = add nsw i64 %indvars.iv485, 1
  store double %807, ptr %808, align 8, !tbaa !76
  %indvars.iv.next484 = add nuw nsw i64 %indvars.iv483, 1
  %810 = load i32, ptr %59, align 4, !tbaa !42
  %811 = sext i32 %810 to i64
  %812 = icmp slt i64 %indvars.iv.next484, %811
  br i1 %812, label %804, label %._crit_edge390.loopexit, !llvm.loop !101

813:                                              ; preds = %804
  %814 = landingpad { ptr, i32 }
          cleanup
  br label %921

815:                                              ; preds = %._crit_edge394
  %816 = getelementptr inbounds i8, ptr %64, i64 96
  %817 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %816, ptr noundef nonnull align 8 dereferenceable(24) %66) #11
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %66) #11
  %818 = load i32, ptr %59, align 4, !tbaa !42
  %819 = icmp sgt i32 %818, 0
  br i1 %819, label %.preheader323, label %._crit_edge402

.preheader323:                                    ; preds = %815, %._crit_edge398
  %820 = phi i32 [ %826, %._crit_edge398 ], [ %818, %815 ]
  %indvars.iv500 = phi i64 [ %indvars.iv.next501, %._crit_edge398 ], [ 0, %815 ]
  %.2400 = phi i32 [ %.3.lcssa, %._crit_edge398 ], [ 0, %815 ]
  %821 = icmp sgt i32 %820, 0
  br i1 %821, label %.lr.ph397, label %.preheader323.._crit_edge398_crit_edge

.preheader323.._crit_edge398_crit_edge:           ; preds = %.preheader323
  %.pre527 = sext i32 %820 to i64
  br label %._crit_edge398

.lr.ph397:                                        ; preds = %.preheader323
  %822 = sext i32 %.2400 to i64
  br label %828

._crit_edge402:                                   ; preds = %._crit_edge398, %815
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %67) #11
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2IiEERKT_(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %839 unwind label %844

823:                                              ; preds = %._crit_edge394
  %824 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %66) #11
  br label %921

._crit_edge398.loopexit:                          ; preds = %833
  %825 = trunc nsw i64 %indvars.iv.next496 to i32
  br label %._crit_edge398

._crit_edge398:                                   ; preds = %.preheader323.._crit_edge398_crit_edge, %._crit_edge398.loopexit
  %.pre-phi = phi i64 [ %.pre527, %.preheader323.._crit_edge398_crit_edge ], [ %835, %._crit_edge398.loopexit ]
  %826 = phi i32 [ %820, %.preheader323.._crit_edge398_crit_edge ], [ %834, %._crit_edge398.loopexit ]
  %.3.lcssa = phi i32 [ %.2400, %.preheader323.._crit_edge398_crit_edge ], [ %825, %._crit_edge398.loopexit ]
  %indvars.iv.next501 = add nuw nsw i64 %indvars.iv500, 1
  %827 = icmp slt i64 %indvars.iv.next501, %.pre-phi
  br i1 %827, label %.preheader323, label %._crit_edge402, !llvm.loop !102

828:                                              ; preds = %.lr.ph397, %833
  %indvars.iv495 = phi i64 [ %822, %.lr.ph397 ], [ %indvars.iv.next496, %833 ]
  %indvars.iv493 = phi i64 [ 0, %.lr.ph397 ], [ %indvars.iv.next494, %833 ]
  %829 = load ptr, ptr @H_red, align 8, !tbaa !80
  %830 = getelementptr inbounds double, ptr %829, i64 %indvars.iv495
  %831 = load double, ptr %830, align 8, !tbaa !76
  %832 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %816, i64 noundef %indvars.iv500, i64 noundef %indvars.iv493)
          to label %833 unwind label %837

833:                                              ; preds = %828
  %indvars.iv.next496 = add nsw i64 %indvars.iv495, 1
  store double %831, ptr %832, align 8, !tbaa !76
  %indvars.iv.next494 = add nuw nsw i64 %indvars.iv493, 1
  %834 = load i32, ptr %59, align 4, !tbaa !42
  %835 = sext i32 %834 to i64
  %836 = icmp slt i64 %indvars.iv.next494, %835
  br i1 %836, label %828, label %._crit_edge398.loopexit, !llvm.loop !103

837:                                              ; preds = %828
  %838 = landingpad { ptr, i32 }
          cleanup
  br label %921

839:                                              ; preds = %._crit_edge402
  %840 = getelementptr inbounds i8, ptr %64, i64 200
  %841 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %840, ptr noundef nonnull align 8 dereferenceable(16) %67) #11
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #11
  %842 = load i32, ptr %59, align 4, !tbaa !42
  %843 = icmp sgt i32 %842, 0
  br i1 %843, label %.lr.ph405, label %._crit_edge406

._crit_edge406:                                   ; preds = %850, %839
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #11
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2IiEERKT_(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %856 unwind label %861

844:                                              ; preds = %._crit_edge402
  %845 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #11
  br label %921

.lr.ph405:                                        ; preds = %839, %850
  %indvars.iv503 = phi i64 [ %indvars.iv.next504, %850 ], [ 0, %839 ]
  %846 = load ptr, ptr @g_red, align 8, !tbaa !80
  %847 = getelementptr inbounds double, ptr %846, i64 %indvars.iv503
  %848 = load double, ptr %847, align 8, !tbaa !76
  %849 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %840, i64 noundef %indvars.iv503)
          to label %850 unwind label %854

850:                                              ; preds = %.lr.ph405
  store double %848, ptr %849, align 8, !tbaa !76
  %indvars.iv.next504 = add nuw nsw i64 %indvars.iv503, 1
  %851 = load i32, ptr %59, align 4, !tbaa !42
  %852 = sext i32 %851 to i64
  %853 = icmp slt i64 %indvars.iv.next504, %852
  br i1 %853, label %.lr.ph405, label %._crit_edge406, !llvm.loop !104

854:                                              ; preds = %.lr.ph405
  %855 = landingpad { ptr, i32 }
          cleanup
  br label %921

856:                                              ; preds = %._crit_edge406
  %857 = getelementptr inbounds i8, ptr %64, i64 184
  %858 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %857, ptr noundef nonnull align 8 dereferenceable(16) %68) #11
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #11
  %859 = load i32, ptr %60, align 4, !tbaa !42
  %860 = icmp sgt i32 %859, 0
  br i1 %860, label %.lr.ph409, label %._crit_edge410

._crit_edge410:                                   ; preds = %867, %856
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %69) #11
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2IiEERKT_(ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %873 unwind label %890

861:                                              ; preds = %._crit_edge406
  %862 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #11
  br label %921

.lr.ph409:                                        ; preds = %856, %867
  %indvars.iv506 = phi i64 [ %indvars.iv.next507, %867 ], [ 0, %856 ]
  %863 = load ptr, ptr @ub_red, align 8, !tbaa !80
  %864 = getelementptr inbounds double, ptr %863, i64 %indvars.iv506
  %865 = load double, ptr %864, align 8, !tbaa !76
  %866 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %857, i64 noundef %indvars.iv506)
          to label %867 unwind label %871

867:                                              ; preds = %.lr.ph409
  store double %865, ptr %866, align 8, !tbaa !76
  %indvars.iv.next507 = add nuw nsw i64 %indvars.iv506, 1
  %868 = load i32, ptr %60, align 4, !tbaa !42
  %869 = sext i32 %868 to i64
  %870 = icmp slt i64 %indvars.iv.next507, %869
  br i1 %870, label %.lr.ph409, label %._crit_edge410, !llvm.loop !105

871:                                              ; preds = %.lr.ph409
  %872 = landingpad { ptr, i32 }
          cleanup
  br label %921

873:                                              ; preds = %._crit_edge410
  %874 = getelementptr inbounds i8, ptr %64, i64 168
  %875 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %874, ptr noundef nonnull align 8 dereferenceable(16) %69) #11
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #11
  %876 = load i32, ptr %60, align 4, !tbaa !42
  %877 = icmp sgt i32 %876, 0
  br i1 %877, label %.lr.ph413, label %._crit_edge414

._crit_edge414:                                   ; preds = %896, %873
  %878 = getelementptr inbounds i8, ptr %0, i64 2944
  %879 = load double, ptr %878, align 8, !tbaa !45
  %880 = getelementptr inbounds i8, ptr %64, i64 24
  store double %879, ptr %880, align 8, !tbaa !46
  %881 = getelementptr inbounds i8, ptr %0, i64 2952
  %882 = load double, ptr %881, align 8, !tbaa !74
  %883 = getelementptr inbounds i8, ptr %64, i64 64
  store double %882, ptr %883, align 8, !tbaa !75
  %884 = getelementptr inbounds i8, ptr %0, i64 2928
  %885 = getelementptr inbounds i8, ptr %64, i64 8
  %886 = load <2 x double>, ptr %884, align 8, !tbaa !76
  store <2 x double> %886, ptr %885, align 8, !tbaa !76
  %887 = getelementptr inbounds i8, ptr %0, i64 2920
  %888 = load i32, ptr %887, align 8, !tbaa !77
  %889 = sext i32 %888 to i64
  store i64 %889, ptr %64, align 8, !tbaa !78
  invoke void @_ZN9QpProblemIdE12runFromDenseElbb(ptr noundef nonnull align 8 dereferenceable(962) %64, i64 noundef %889, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %.preheader322 unwind label %902

.preheader322:                                    ; preds = %._crit_edge414
  br i1 %538, label %.lr.ph417.preheader, label %._crit_edge418

.lr.ph417.preheader:                              ; preds = %.preheader322
  %wide.trip.count515 = zext nneg i32 %521 to i64
  br label %.lr.ph417

890:                                              ; preds = %._crit_edge410
  %891 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #11
  br label %921

.lr.ph413:                                        ; preds = %873, %896
  %indvars.iv509 = phi i64 [ %indvars.iv.next510, %896 ], [ 0, %873 ]
  %892 = load ptr, ptr @lb_red, align 8, !tbaa !80
  %893 = getelementptr inbounds double, ptr %892, i64 %indvars.iv509
  %894 = load double, ptr %893, align 8, !tbaa !76
  %895 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %874, i64 noundef %indvars.iv509)
          to label %896 unwind label %900

896:                                              ; preds = %.lr.ph413
  store double %894, ptr %895, align 8, !tbaa !76
  %indvars.iv.next510 = add nuw nsw i64 %indvars.iv509, 1
  %897 = load i32, ptr %60, align 4, !tbaa !42
  %898 = sext i32 %897 to i64
  %899 = icmp slt i64 %indvars.iv.next510, %898
  br i1 %899, label %.lr.ph413, label %._crit_edge414, !llvm.loop !106

900:                                              ; preds = %.lr.ph413
  %901 = landingpad { ptr, i32 }
          cleanup
  br label %921

._crit_edge418:                                   ; preds = %920, %.preheader322
  call void @_ZN9QpProblemIdED2Ev(ptr noundef nonnull align 8 dereferenceable(962) %64) #11
  call void @llvm.lifetime.end.p0(i64 968, ptr nonnull %64) #11
  br label %923

902:                                              ; preds = %._crit_edge414
  %903 = landingpad { ptr, i32 }
          cleanup
  br label %921

.lr.ph417:                                        ; preds = %.lr.ph417.preheader, %920
  %indvars.iv512 = phi i64 [ 0, %.lr.ph417.preheader ], [ %indvars.iv.next513, %920 ]
  %.6262415 = phi i32 [ 0, %.lr.ph417.preheader ], [ %.7263, %920 ]
  %904 = getelementptr inbounds [2000 x i8], ptr @var_elim, i64 0, i64 %indvars.iv512
  %905 = load i8, ptr %904, align 1, !tbaa !38
  %.not = icmp eq i8 %905, 0
  br i1 %.not, label %909, label %906

906:                                              ; preds = %.lr.ph417
  %907 = load ptr, ptr @q_soln, align 8, !tbaa !80
  %908 = getelementptr inbounds double, ptr %907, i64 %indvars.iv512
  store double 0.000000e+00, ptr %908, align 8, !tbaa !76
  br label %920

909:                                              ; preds = %.lr.ph417
  %910 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN9QpProblemIdE11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(962) %64)
  %911 = sext i32 %.6262415 to i64
  %912 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %910, i64 noundef %911)
          to label %913 unwind label %918

913:                                              ; preds = %909
  %914 = load double, ptr %912, align 8, !tbaa !76
  %915 = load ptr, ptr @q_soln, align 8, !tbaa !80
  %916 = getelementptr inbounds double, ptr %915, i64 %indvars.iv512
  store double %914, ptr %916, align 8, !tbaa !76
  %917 = add nsw i32 %.6262415, 1
  br label %920

918:                                              ; preds = %909
  %919 = landingpad { ptr, i32 }
          cleanup
  br label %921

920:                                              ; preds = %906, %913
  %.7263 = phi i32 [ %.6262415, %906 ], [ %917, %913 ]
  %indvars.iv.next513 = add nuw nsw i64 %indvars.iv512, 1
  %exitcond516.not = icmp eq i64 %indvars.iv.next513, %wide.trip.count515
  br i1 %exitcond516.not, label %._crit_edge418, label %.lr.ph417, !llvm.loop !107

921:                                              ; preds = %813, %823, %837, %844, %854, %861, %871, %890, %900, %902, %918, %797
  %.pn300.pn = phi { ptr, i32 } [ %798, %797 ], [ %814, %813 ], [ %838, %837 ], [ %855, %854 ], [ %872, %871 ], [ %901, %900 ], [ %919, %918 ], [ %903, %902 ], [ %891, %890 ], [ %862, %861 ], [ %845, %844 ], [ %824, %823 ]
  call void @_ZN9QpProblemIdED2Ev(ptr noundef nonnull align 8 dereferenceable(962) %64) #11
  br label %922

922:                                              ; preds = %921, %795
  %.pn300.pn.pn = phi { ptr, i32 } [ %.pn300.pn, %921 ], [ %796, %795 ]
  call void @llvm.lifetime.end.p0(i64 968, ptr nonnull %64) #11
  br label %924

923:                                              ; preds = %._crit_edge418, %._crit_edge423
  call void @llvm.stackrestore.p0(ptr %543)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #11
  br label %925

924:                                              ; preds = %922, %781
  %.pn304.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn304.pn.pn.pn.pn, %781 ], [ %.pn300.pn.pn, %922 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #11
  br label %942

925:                                              ; preds = %._crit_edge427, %923
  %926 = load i32, ptr %377, align 8, !tbaa !43
  %927 = icmp eq i32 %926, 1
  br i1 %927, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %925
  %928 = load i32, ptr %103, align 4, !tbaa !35
  %929 = icmp sgt i32 %928, 0
  br i1 %929, label %.lr.ph429, label %.loopexit

.lr.ph429:                                        ; preds = %.preheader, %932
  %indvars.iv522 = phi i64 [ %indvars.iv.next523, %932 ], [ 0, %.preheader ]
  %930 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN9QpProblemIdE11getSolutionEv(ptr noundef nonnull align 8 dereferenceable(962) %49)
  %931 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEixEl(ptr noundef nonnull align 1 dereferenceable(1) %930, i64 noundef %indvars.iv522)
          to label %932 unwind label %940

932:                                              ; preds = %.lr.ph429
  %933 = load double, ptr %931, align 8, !tbaa !76
  %934 = load ptr, ptr @q_soln, align 8, !tbaa !80
  %935 = getelementptr inbounds double, ptr %934, i64 %indvars.iv522
  store double %933, ptr %935, align 8, !tbaa !76
  %indvars.iv.next523 = add nuw nsw i64 %indvars.iv522, 1
  %936 = load i32, ptr %103, align 4, !tbaa !35
  %937 = mul nsw i32 %936, 12
  %938 = sext i32 %937 to i64
  %939 = icmp slt i64 %indvars.iv.next523, %938
  br i1 %939, label %.lr.ph429, label %.loopexit, !llvm.loop !108

940:                                              ; preds = %.lr.ph429
  %941 = landingpad { ptr, i32 }
          cleanup
  br label %942

.loopexit:                                        ; preds = %932, %.preheader, %925
  call void @_ZN9QpProblemIdED2Ev(ptr noundef nonnull align 8 dereferenceable(962) %49) #11
  call void @llvm.lifetime.end.p0(i64 968, ptr nonnull %49) #11
  call void @llvm.lifetime.end.p0(i64 60, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 52, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %3) #11
  ret void

942:                                              ; preds = %940, %924, %531, %529, %527, %525, %480, %478, %467, %465, %463, %461
  %.pn318 = phi { ptr, i32 } [ %479, %478 ], [ %941, %940 ], [ %481, %480 ], [ %468, %467 ], [ %466, %465 ], [ %464, %463 ], [ %462, %461 ], [ %.pn304.pn.pn.pn.pn.pn, %924 ], [ %532, %531 ], [ %530, %529 ], [ %528, %527 ], [ %526, %525 ]
  call void @_ZN9QpProblemIdED2Ev(ptr noundef nonnull align 8 dereferenceable(962) %49) #11
  call void @llvm.lifetime.end.p0(i64 968, ptr nonnull %49) #11
  br label %943

943:                                              ; preds = %942, %417
  %.pn318.pn = phi { ptr, i32 } [ %.pn318, %942 ], [ %.pn286.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %417 ]
  call void @llvm.lifetime.end.p0(i64 60, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 52, ptr nonnull %15) #11
  br label %944

944:                                              ; preds = %943, %153
  %.pn318.pn.pn = phi { ptr, i32 } [ %.pn318.pn, %943 ], [ %.pn, %153 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %3) #11
  resume { ptr, i32 } %.pn318.pn.pn
}

declare void @_ZN10RobotState3setEPfS0_S0_S0_S0_f(ptr noundef nonnull align 16 dereferenceable(232), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, float noundef) local_unnamed_addr #6

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9QpProblemIdEC2Ellb(ptr noundef nonnull align 8 dereferenceable(962), i64 noundef, i64 noundef, i1 noundef zeroext) unnamed_addr #2 align 2

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

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

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

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

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

declare void @_ZN9QpProblemIdE12runFromDenseElbb(ptr noundef nonnull align 8 dereferenceable(962), i64 noundef, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #6

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn
declare ptr @llvm.stacksave.p0() #7

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

declare void @_ZN7qpOASES8QProblemC1EiiNS_11HessianTypeENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064), i32 noundef, i32 noundef, i32 noundef, i32 noundef) unnamed_addr #6

declare void @_ZN7qpOASES7OptionsC1Ev(ptr noundef nonnull align 8 dereferenceable(220)) unnamed_addr #6

declare noundef i32 @_ZN7qpOASES7Options8setToMPCEv(ptr noundef nonnull align 8 dereferenceable(220)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN7qpOASES9QProblemB10setOptionsERKNS_7OptionsE(ptr noundef nonnull align 8 dereferenceable(800), ptr noundef nonnull align 8 dereferenceable(220)) local_unnamed_addr #4 align 2

declare noundef i32 @_ZN7qpOASES8QProblem4initEPKdS2_S2_S2_S2_S2_S2_RiPdS2_S2_PKNS_6BoundsEPKNS_11ConstraintsES2_(ptr noundef nonnull align 8 dereferenceable(1064), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare noundef i32 @_ZNK7qpOASES9QProblemB17getPrimalSolutionEPd(ptr noundef nonnull align 8 dereferenceable(800), ptr noundef) local_unnamed_addr #6

; Function Attrs: nounwind
declare void @_ZN7qpOASES7OptionsD1Ev(ptr noundef nonnull align 8 dereferenceable(220)) unnamed_addr #8

; Function Attrs: nounwind
declare void @_ZN7qpOASES8QProblemD1Ev(ptr noundef nonnull align 8 dereferenceable(1064)) unnamed_addr #8

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn
declare void @llvm.stackrestore.p0(ptr) #7

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #10

attributes #0 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nocallback nofree nosync nounwind willreturn }
attributes #8 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #11 = { 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, !9, i64 100}
!6 = !{!"_ZTS13update_data_t", !7, i64 0, !7, i64 12, !7, i64 24, !7, i64 40, !7, i64 52, !9, i64 100, !7, i64 104, !7, i64 152, !9, i64 1880, !7, i64 1884, !7, i64 1920, !10, i64 2920, !11, i64 2928, !11, i64 2936, !11, i64 2944, !11, i64 2952, !10, i64 2960, !9, i64 2964}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!"float", !7, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!"double", !7, i64 0}
!12 = !{!9, !9, i64 0}
!13 = !{!14, !9, i64 228}
!14 = !{!"_ZTS10RobotState", !15, i64 0, !15, i64 12, !15, i64 24, !19, i64 48, !23, i64 96, !23, i64 132, !23, i64 168, !27, i64 208, !9, i64 224, !9, i64 228}
!15 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi1ELi0ELi3ELi1EEE", !16, i64 0}
!16 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi1ELi0ELi3ELi1EEEEE", !17, i64 0}
!17 = !{!"_ZTSN5Eigen12DenseStorageIfLi3ELi3ELi1ELi0EEE", !18, i64 0}
!18 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi3ELi0ELi0EEE", !7, i64 0}
!19 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi4ELi0ELi3ELi4EEE", !20, i64 0}
!20 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi4ELi0ELi3ELi4EEEEE", !21, i64 0}
!21 = !{!"_ZTSN5Eigen12DenseStorageIfLi12ELi3ELi4ELi0EEE", !22, i64 0}
!22 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi12ELi0ELi16EEE", !7, i64 0}
!23 = !{!"_ZTSN5Eigen6MatrixIfLi3ELi3ELi0ELi3ELi3EEE", !24, i64 0}
!24 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi3ELi3ELi0ELi3ELi3EEEEE", !25, i64 0}
!25 = !{!"_ZTSN5Eigen12DenseStorageIfLi9ELi3ELi3ELi0EEE", !26, i64 0}
!26 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi9ELi0ELi0EEE", !7, i64 0}
!27 = !{!"_ZTSN5Eigen10QuaternionIfLi0EEE", !28, i64 0}
!28 = !{!"_ZTSN5Eigen6MatrixIfLi4ELi1ELi0ELi4ELi1EEE", !29, i64 0}
!29 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIfLi4ELi1ELi0ELi4ELi1EEEEE", !30, i64 0}
!30 = !{!"_ZTSN5Eigen12DenseStorageIfLi4ELi4ELi1ELi0EEE", !31, i64 0}
!31 = !{!"_ZTSN5Eigen8internal11plain_arrayIfLi4ELi0ELi16EEE", !7, i64 0}
!32 = !{!6, !9, i64 2964}
!33 = !{!34, !9, i64 0}
!34 = !{!"_ZTS13problem_setup", !9, i64 0, !9, i64 4, !9, i64 8, !10, i64 12}
!35 = !{!34, !10, i64 12}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!7, !7, i64 0}
!39 = !{!34, !9, i64 8}
!40 = distinct !{!40, !37}
!41 = !{!34, !9, i64 4}
!42 = !{!10, !10, i64 0}
!43 = !{!6, !10, i64 2960}
!44 = distinct !{!44, !37}
!45 = !{!6, !11, i64 2944}
!46 = !{!47, !11, i64 24}
!47 = !{!"_ZTS9QpProblemIdE", !48, i64 0, !50, i64 72, !50, i64 96, !54, i64 120, !54, i64 144, !58, i64 168, !58, i64 184, !58, i64 200, !49, i64 216, !49, i64 224, !61, i64 232, !50, i64 240, !54, i64 264, !62, i64 288, !63, i64 368, !66, i64 536, !66, i64 608, !58, i64 680, !58, i64 696, !58, i64 712, !58, i64 728, !58, i64 744, !58, i64 760, !53, i64 776, !53, i64 784, !53, i64 792, !53, i64 800, !58, i64 808, !58, i64 824, !58, i64 840, !58, i64 856, !58, i64 872, !58, i64 888, !58, i64 904, !58, i64 920, !70, i64 936, !61, i64 960, !61, i64 961}
!48 = !{!"_ZTS17QpProblemSettingsIdE", !49, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64}
!49 = !{!"long", !7, i64 0}
!50 = !{!"_ZTSN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEE", !51, i64 0}
!51 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEE", !52, i64 0}
!52 = !{!"_ZTSN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EEE", !53, i64 0, !49, i64 8, !49, i64 16}
!53 = !{!"any pointer", !7, i64 0}
!54 = !{!"_ZTSSt6vectorI12SparseTripleIdESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseI12SparseTripleIdESaIS1_EE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseI12SparseTripleIdESaIS1_EE12_Vector_implE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseI12SparseTripleIdESaIS1_EE17_Vector_impl_dataE", !53, i64 0, !53, i64 8, !53, i64 16}
!58 = !{!"_ZTSN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEE", !59, i64 0}
!59 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEE", !60, i64 0}
!60 = !{!"_ZTSN5Eigen12DenseStorageIdLin1ELin1ELi1ELi0EEE", !53, i64 0, !49, i64 8}
!61 = !{!"bool", !7, i64 0}
!62 = !{!"_ZTS19CholeskyDenseSolverIdE", !50, i64 0, !53, i64 24, !53, i64 32, !58, i64 40, !53, i64 56, !49, i64 64, !61, i64 72}
!63 = !{!"_ZTS20CholeskySparseSolverIdE", !64, i64 0, !65, i64 16, !65, i64 56, !10, i64 96, !53, i64 104, !53, i64 112, !53, i64 120, !53, i64 128, !53, i64 136, !53, i64 144, !53, i64 152, !53, i64 160}
!64 = !{!"_ZTS12SparseTripleIdE", !11, i64 0, !10, i64 8, !10, i64 12}
!65 = !{!"_ZTS6MatCSCIdE", !10, i64 0, !10, i64 4, !10, i64 8, !53, i64 16, !53, i64 24, !53, i64 32}
!66 = !{!"_ZTSN5Eigen12SparseMatrixIdLi0EiEE", !67, i64 0, !49, i64 8, !49, i64 16, !53, i64 24, !53, i64 32, !69, i64 40}
!67 = !{!"_ZTSN5Eigen20SparseCompressedBaseINS_12SparseMatrixIdLi0EiEEEE", !68, i64 0}
!68 = !{!"_ZTSN5Eigen16SparseMatrixBaseINS_12SparseMatrixIdLi0EiEEEE", !61, i64 0}
!69 = !{!"_ZTSN5Eigen8internal17CompressedStorageIdiEE", !53, i64 0, !53, i64 8, !49, i64 16, !49, i64 24}
!70 = !{!"_ZTSSt6vectorI14ConstraintInfoIdESaIS1_EE", !71, i64 0}
!71 = !{!"_ZTSSt12_Vector_baseI14ConstraintInfoIdESaIS1_EE", !72, i64 0}
!72 = !{!"_ZTSNSt12_Vector_baseI14ConstraintInfoIdESaIS1_EE12_Vector_implE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseI14ConstraintInfoIdESaIS1_EE17_Vector_impl_dataE", !53, i64 0, !53, i64 8, !53, i64 16}
!74 = !{!6, !11, i64 2952}
!75 = !{!47, !11, i64 64}
!76 = !{!11, !11, i64 0}
!77 = !{!6, !10, i64 2920}
!78 = !{!47, !49, i64 0}
!79 = distinct !{!79, !37}
!80 = !{!53, !53, i64 0}
!81 = distinct !{!81, !37, !82, !83}
!82 = !{!"llvm.loop.isvectorized", i32 1}
!83 = !{!"llvm.loop.unroll.runtime.disable"}
!84 = distinct !{!84, !37, !82}
!85 = distinct !{!85, !37}
!86 = distinct !{!86, !37}
!87 = distinct !{!87, !37}
!88 = distinct !{!88, !37}
!89 = distinct !{!89, !37}
!90 = distinct !{!90, !37}
!91 = distinct !{!91, !37}
!92 = distinct !{!92, !37}
!93 = distinct !{!93, !37}
!94 = !{!95, !96, i64 0}
!95 = !{!"_ZTSN7qpOASES7OptionsE", !96, i64 0, !97, i64 4, !97, i64 8, !97, i64 12, !97, i64 16, !97, i64 20, !97, i64 24, !10, i64 28, !10, i64 32, !97, i64 36, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88, !11, i64 96, !11, i64 104, !11, i64 112, !11, i64 120, !98, i64 128, !11, i64 136, !10, i64 144, !11, i64 152, !10, i64 160, !11, i64 168, !11, i64 176, !11, i64 184, !11, i64 192, !97, i64 200, !97, i64 204, !10, i64 208, !10, i64 212, !10, i64 216}
!96 = !{!"_ZTSN7qpOASES10PrintLevelE", !7, i64 0}
!97 = !{!"_ZTSN7qpOASES11BooleanTypeE", !7, i64 0}
!98 = !{!"_ZTSN7qpOASES15SubjectToStatusE", !7, i64 0}
!99 = distinct !{!99, !37}
!100 = distinct !{!100, !37}
!101 = distinct !{!101, !37}
!102 = distinct !{!102, !37}
!103 = distinct !{!103, !37}
!104 = distinct !{!104, !37}
!105 = distinct !{!105, !37}
!106 = distinct !{!106, !37}
!107 = distinct !{!107, !37}
!108 = distinct !{!108, !37}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass