; LLVM IR from Forrest-Z/cpp_robotics :: slam/ukf_slam/src (ukf_slam)

; 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.Eigen::CwiseNullaryOp" = type { %"class.Eigen::internal::variable_if_dynamic", [8 x i8], %"struct.Eigen::internal::scalar_constant_op" }
%"class.Eigen::internal::variable_if_dynamic" = type { i64 }
%"struct.Eigen::internal::scalar_constant_op" = type { double }
%"class.Eigen::CwiseNullaryOp.28" = type { %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic", %"struct.Eigen::internal::scalar_constant_op" }
%"class.Eigen::Block.56" = type { %"class.Eigen::BlockImpl.57" }
%"class.Eigen::BlockImpl.57" = type { %"class.Eigen::internal::BlockImpl_dense.58" }
%"class.Eigen::internal::BlockImpl_dense.58" = type { %"class.Eigen::MapBase.base.69", ptr, i64 }
%"class.Eigen::MapBase.base.69" = type { %"class.Eigen::MapBase.base.68" }
%"class.Eigen::MapBase.base.68" = type <{ ptr, %"class.Eigen::internal::variable_if_dynamic", i8 }>
%"class.Eigen::Block.102" = type { %"class.Eigen::BlockImpl.103" }
%"class.Eigen::BlockImpl.103" = type { %"class.Eigen::internal::BlockImpl_dense.104" }
%"class.Eigen::internal::BlockImpl_dense.104" = type { %"class.Eigen::MapBase.105", ptr, i64 }
%"class.Eigen::MapBase.105" = type { ptr, [8 x i8], %"class.Eigen::internal::variable_if_dynamic" }
%"class.Eigen::GeneralProduct" = type { %"class.Eigen::Matrix.120" }
%"class.Eigen::Matrix.120" = type { %"class.Eigen::PlainObjectBase.121" }
%"class.Eigen::PlainObjectBase.121" = type { %"class.Eigen::DenseStorage.129" }
%"class.Eigen::DenseStorage.129" = type { %"struct.Eigen::internal::plain_array" }
%"struct.Eigen::internal::plain_array" = type { [1 x double] }
%"class.Eigen::GeneralProduct.137" = type { %"class.Eigen::ProductBase" }
%"class.Eigen::ProductBase" = type { ptr, ptr, %"class.Eigen::Matrix.2" }
%"class.Eigen::Matrix.2" = type { %"class.Eigen::PlainObjectBase.3" }
%"class.Eigen::PlainObjectBase.3" = type { %"class.Eigen::DenseStorage.11" }
%"class.Eigen::DenseStorage.11" = type { ptr, i64 }
%"class.Eigen::Block.150" = type { %"class.Eigen::BlockImpl.151" }
%"class.Eigen::BlockImpl.151" = type { %"class.Eigen::internal::BlockImpl_dense.152" }
%"class.Eigen::internal::BlockImpl_dense.152" = type { %"class.Eigen::MapBase.base.160", ptr, i64 }
%"class.Eigen::MapBase.base.160" = type <{ ptr, %"class.Eigen::internal::variable_if_dynamic", i8 }>
%"class.Eigen::CwiseBinaryOp.162" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::CwiseUnaryOp.177" = type { ptr, %"struct.Eigen::internal::scalar_multiple_op" }
%"struct.Eigen::internal::scalar_multiple_op" = type { double }
%"class.Eigen::GeneralProduct.170" = type { %"class.Eigen::ProductBase.171" }
%"class.Eigen::ProductBase.171" = type { %"class.Eigen::CwiseUnaryOp.177", %"class.Eigen::Transpose", %"class.Eigen::Matrix" }
%"class.Eigen::Transpose" = type { ptr }
%"class.Eigen::Matrix" = type { %"class.Eigen::PlainObjectBase" }
%"class.Eigen::PlainObjectBase" = type { %"class.Eigen::DenseStorage" }
%"class.Eigen::DenseStorage" = type { ptr, i64, i64 }
%"class.Eigen::Block.184" = type { %"class.Eigen::BlockImpl.185" }
%"class.Eigen::BlockImpl.185" = type { %"class.Eigen::internal::BlockImpl_dense.186" }
%"class.Eigen::internal::BlockImpl_dense.186" = type { %"class.Eigen::MapBase.187", ptr, i64 }
%"class.Eigen::MapBase.187" = type { %"class.Eigen::MapBase.188" }
%"class.Eigen::MapBase.188" = type { ptr, [8 x i8], %"class.Eigen::internal::variable_if_dynamic" }
%"class.Eigen::ArrayWrapper.233" = type { %"class.Eigen::Block.184" }
%"class.Eigen::CwiseBinaryOp.266" = type <{ %"class.Eigen::Block.102", %"class.Eigen::Block.102", [8 x i8] }>
%"class.Eigen::GeneralProduct.274" = type { %"class.Eigen::Matrix.120" }
%"class.Eigen::CwiseUnaryOp.275" = type <{ %"class.Eigen::ArrayWrapper.233", [8 x i8] }>
%"class.Eigen::CwiseUnaryOp.283" = type <{ %"class.Eigen::ArrayWrapper.233", [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.291" = type <{ %"class.Eigen::Block.56", ptr, [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.299" = type <{ ptr, %"class.Eigen::Matrix", [8 x i8] }>
%"class.Eigen::ScaledProduct" = type { %"class.Eigen::ProductBase.307", ptr, double }
%"class.Eigen::ProductBase.307" = type { ptr, %"class.Eigen::Transpose", %"class.Eigen::Matrix" }
%"class.Eigen::GeneralProduct.313" = type { %"class.Eigen::ProductBase.314" }
%"class.Eigen::ProductBase.314" = type { ptr, %"class.Eigen::Transpose", %"class.Eigen::Matrix" }
%"class.Eigen::CwiseBinaryOp.320" = type <{ %"class.Eigen::Block.150", ptr, [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.328" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::GeneralProduct.336" = type { %"class.Eigen::ProductBase.337" }
%"class.Eigen::ProductBase.337" = type { ptr, %"class.Eigen::Matrix", %"class.Eigen::Matrix" }
%"struct.Eigen::internal::inverse_impl" = type { ptr }
%"struct.Eigen::CommaInitializer.349" = type { ptr, i64, i64, i64 }
%"class.Eigen::CwiseBinaryOp.350" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.358" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.366" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::GeneralProduct.374" = type { %"class.Eigen::ProductBase.375" }
%"class.Eigen::ProductBase.375" = type { ptr, %"class.Eigen::Transpose.381", %"class.Eigen::Matrix" }
%"class.Eigen::Transpose.381" = type { ptr }
%"class.Eigen::GeneralProduct.390" = type { %"class.Eigen::ProductBase.391" }
%"class.Eigen::ProductBase.391" = type { ptr, ptr, %"class.Eigen::Matrix" }
%class.UKFSLam = type { ptr, i8, float, %class.Tools, %"class.Eigen::Matrix", %"class.Eigen::Matrix.2", %"class.Eigen::Matrix", %"class.Eigen::Matrix", %"class.std::vector" }
%class.Tools = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.RadarReading = type { i64, float, float }

declare i32 @__gxx_personality_v0(...)

; 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 nounwind uwtable
declare dso_local void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE4ZeroEl(ptr dead_on_unwind noalias writable sret(%"class.Eigen::CwiseNullaryOp") align 8, i64 noundef) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4ZeroEll(ptr dead_on_unwind noalias writable sret(%"class.Eigen::CwiseNullaryOp.28") align 8, i64 noundef, i64 noundef) #2 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare double @atan2(double noundef, double noundef) #4

declare noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8), float noundef) #5

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7UKFSLam6updateERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERK12RadarReading(ptr noundef nonnull align 8 dereferenceable(136) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(16) %2) #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca double, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %"class.Eigen::Matrix.2", align 8
  %14 = alloca %"class.Eigen::CwiseBinaryOp.266", align 8
  %15 = alloca %"class.Eigen::Block.102", align 8
  %16 = alloca %"class.Eigen::Block.102", align 8
  %17 = alloca %"class.Eigen::Matrix.2", align 8
  %18 = alloca %"class.Eigen::CwiseBinaryOp.266", align 8
  %19 = alloca %"class.Eigen::Block.102", align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.Eigen::Block.102", align 8
  %23 = alloca %"class.Eigen::Matrix", align 8
  %24 = alloca %"class.Eigen::CwiseNullaryOp.28", align 8
  %25 = alloca i32, align 4
  %26 = alloca double, align 8
  %27 = alloca %"class.Eigen::Matrix.2", align 8
  %28 = alloca i32, align 4
  %29 = alloca %"class.Eigen::Matrix.2", align 8
  %30 = alloca %"class.Eigen::CwiseNullaryOp", align 8
  %31 = alloca %"class.Eigen::GeneralProduct.274", align 8
  %32 = alloca %"class.Eigen::Block.184", align 8
  %33 = alloca %"class.Eigen::Matrix.2", align 8
  %34 = alloca %"class.Eigen::CwiseUnaryOp.275", align 8
  %35 = alloca %"class.Eigen::ArrayWrapper.233", align 8
  %36 = alloca %"class.Eigen::Block.184", align 8
  %37 = alloca %"class.Eigen::Matrix.2", align 8
  %38 = alloca %"class.Eigen::CwiseUnaryOp.283", align 8
  %39 = alloca %"class.Eigen::ArrayWrapper.233", align 8
  %40 = alloca %"class.Eigen::Block.184", align 8
  %41 = alloca double, align 8
  %42 = alloca %"class.Eigen::GeneralProduct", align 8
  %43 = alloca %"class.Eigen::Transpose", align 8
  %44 = alloca double, align 8
  %45 = alloca %"class.Eigen::GeneralProduct", align 8
  %46 = alloca %"class.Eigen::Transpose", align 8
  %47 = alloca %"class.Eigen::Matrix", align 8
  %48 = alloca %"class.Eigen::CwiseNullaryOp.28", align 8
  %49 = alloca %"class.Eigen::Matrix", align 8
  %50 = alloca %"class.Eigen::CwiseNullaryOp.28", align 8
  %51 = alloca i32, align 4
  %52 = alloca %"class.Eigen::Matrix.2", align 8
  %53 = alloca %"class.Eigen::CwiseBinaryOp.291", align 8
  %54 = alloca %"class.Eigen::Block.56", align 8
  %55 = alloca %"class.Eigen::CwiseBinaryOp.299", align 8
  %56 = alloca %"class.Eigen::ScaledProduct", align 8
  %57 = alloca %"class.Eigen::GeneralProduct.313", align 8
  %58 = alloca %"class.Eigen::Transpose", align 8
  %59 = alloca %"class.Eigen::Matrix.2", align 8
  %60 = alloca %"class.Eigen::CwiseBinaryOp.320", align 8
  %61 = alloca %"class.Eigen::Block.150", align 8
  %62 = alloca %"class.Eigen::CwiseBinaryOp.162", align 8
  %63 = alloca %"class.Eigen::GeneralProduct.170", align 8
  %64 = alloca %"class.Eigen::CwiseUnaryOp.177", align 8
  %65 = alloca %"class.Eigen::Transpose", align 8
  %66 = alloca %"class.Eigen::CwiseBinaryOp.328", align 8
  %67 = alloca %"class.Eigen::Matrix", align 8
  %68 = alloca %"class.Eigen::GeneralProduct.336", align 8
  %69 = alloca %"struct.Eigen::internal::inverse_impl", align 8
  %70 = alloca %"class.Eigen::Matrix.2", align 8
  %71 = alloca %"struct.Eigen::CommaInitializer.349", align 8
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca %"class.Eigen::Matrix.2", align 8
  %75 = alloca %"class.Eigen::CwiseBinaryOp.350", align 8
  %76 = alloca %"class.Eigen::CwiseBinaryOp.358", align 8
  %77 = alloca %"class.Eigen::GeneralProduct.137", align 8
  %78 = alloca %"class.Eigen::CwiseBinaryOp.366", align 8
  %79 = alloca %"class.Eigen::GeneralProduct.374", align 8
  %80 = alloca %"class.Eigen::GeneralProduct.390", align 8
  %81 = alloca %"class.Eigen::Transpose.381", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %82 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %83 = load ptr, ptr %5, align 8, !tbaa !5
  %84 = call noundef i64 @_ZNK5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4rowsEv(ptr noundef nonnull align 8 dereferenceable(24) %83)
  %85 = trunc i64 %84 to i32
  store i32 %85, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  %86 = load ptr, ptr %5, align 8, !tbaa !5
  %87 = call noundef i64 @_ZNK5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4colsEv(ptr noundef nonnull align 8 dereferenceable(24) %86)
  %88 = trunc i64 %87 to i32
  store i32 %88, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %89 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 2
  %90 = load float, ptr %89, align 4, !tbaa !11
  %91 = load i32, ptr %7, align 4, !tbaa !9
  %92 = sitofp i32 %91 to float
  %93 = fsub float %90, %92
  %94 = fpext float %93 to double
  store double %94, ptr %9, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  store i32 0, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %95

95:                                               ; preds = %116, %3
  %96 = load i32, ptr %11, align 4, !tbaa !9
  %97 = sext i32 %96 to i64
  %98 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 8
  %99 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #7
  %100 = icmp ult i64 %97, %99
  br i1 %100, label %102, label %101

101:                                              ; preds = %95
  store i32 2, ptr %12, align 4
  br label %119

102:                                              ; preds = %95
  %103 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 8
  %104 = load i32, ptr %11, align 4, !tbaa !9
  %105 = sext i32 %104 to i64
  %106 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %103, i64 noundef %105) #7
  %107 = load i32, ptr %106, align 4, !tbaa !9
  %108 = sext i32 %107 to i64
  %109 = load ptr, ptr %6, align 8, !tbaa !5
  %110 = getelementptr inbounds %struct.RadarReading, ptr %109, i32 0, i32 0
  %111 = load i64, ptr %110, align 8, !tbaa !29
  %112 = icmp eq i64 %108, %111
  br i1 %112, label %113, label %115

113:                                              ; preds = %102
  %114 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %114, ptr %10, align 4, !tbaa !9
  store i32 2, ptr %12, align 4
  br label %119

115:                                              ; preds = %102
  br label %116

116:                                              ; preds = %115
  %117 = load i32, ptr %11, align 4, !tbaa !9
  %118 = add nsw i32 %117, 1
  store i32 %118, ptr %11, align 4, !tbaa !9
  br label %95, !llvm.loop !32

119:                                              ; preds = %113, %101
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  br label %120

120:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %15) #7
  %121 = load ptr, ptr %5, align 8, !tbaa !5
  %122 = load i32, ptr %10, align 4, !tbaa !9
  %123 = mul nsw i32 2, %122
  %124 = add nsw i32 %123, 3
  %125 = sext i32 %124 to i64
  call void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind writable sret(%"class.Eigen::Block.102") align 8 %15, ptr noundef nonnull align 1 dereferenceable(1) %121, i64 noundef %125)
  call void @llvm.lifetime.start.p0(i64 40, ptr %16) #7
  %126 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind writable sret(%"class.Eigen::Block.102") align 8 %16, ptr noundef nonnull align 1 dereferenceable(1) %126, i64 noundef 0)
  call void @_ZNK5Eigen10MatrixBaseINS_5BlockIKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEmiIS5_EEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS5_KT_EERKNS0_ISD_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.266") align 8 %14, ptr noundef nonnull align 1 dereferenceable(1) %15, ptr noundef nonnull align 1 dereferenceable(1) %16)
  call void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKNS_5BlockIKNS0_IdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEESB_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 1 dereferenceable(1) %14)
  call void @llvm.lifetime.end.p0(i64 40, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %19) #7
  %127 = load ptr, ptr %5, align 8, !tbaa !5
  %128 = load i32, ptr %10, align 4, !tbaa !9
  %129 = mul nsw i32 2, %128
  %130 = add nsw i32 %129, 4
  %131 = sext i32 %130 to i64
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind writable sret(%"class.Eigen::Block.102") align 8 %19, ptr noundef nonnull align 1 dereferenceable(1) %127, i64 noundef %131)
          to label %132 unwind label %148

132:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 40, ptr %22) #7
  %133 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind writable sret(%"class.Eigen::Block.102") align 8 %22, ptr noundef nonnull align 1 dereferenceable(1) %133, i64 noundef 1)
          to label %134 unwind label %152

134:                                              ; preds = %132
  invoke void @_ZNK5Eigen10MatrixBaseINS_5BlockIKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEmiIS5_EEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS5_KT_EERKNS0_ISD_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.266") align 8 %18, ptr noundef nonnull align 1 dereferenceable(1) %19, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %135 unwind label %152

135:                                              ; preds = %134
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKNS_5BlockIKNS0_IdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEESB_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %136 unwind label %152

136:                                              ; preds = %135
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %24) #7
  %137 = load i32, ptr %7, align 4, !tbaa !9
  %138 = mul nsw i32 2, %137
  %139 = add nsw i32 %138, 1
  %140 = sext i32 %139 to i64
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4ZeroEll(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseNullaryOp.28") align 8 %24, i64 noundef 2, i64 noundef %140)
          to label %141 unwind label %157

141:                                              ; preds = %136
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2INS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %142 unwind label %157

142:                                              ; preds = %141
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  store i32 0, ptr %25, align 4, !tbaa !9
  br label %143

143:                                              ; preds = %210, %142
  %144 = load i32, ptr %25, align 4, !tbaa !9
  %145 = load i32, ptr %8, align 4, !tbaa !9
  %146 = icmp slt i32 %144, %145
  br i1 %146, label %161, label %147

147:                                              ; preds = %143
  store i32 5, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %217

148:                                              ; preds = %120
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %20, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %21, align 4
  br label %156

152:                                              ; preds = %135, %134, %132
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %20, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #7
  br label %156

156:                                              ; preds = %152, %148
  call void @llvm.lifetime.end.p0(i64 40, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr %18) #7
  br label %595

157:                                              ; preds = %141, %136
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %20, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #7
  br label %594

161:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %162 = load i32, ptr %25, align 4, !tbaa !9
  %163 = sext i32 %162 to i64
  %164 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %13, i64 noundef %163)
          to label %165 unwind label %213

165:                                              ; preds = %161
  %166 = load double, ptr %164, align 8, !tbaa !27
  %167 = invoke noundef double @_ZSt3powIdiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(double noundef %166, i32 noundef 2)
          to label %168 unwind label %213

168:                                              ; preds = %165
  %169 = load i32, ptr %25, align 4, !tbaa !9
  %170 = sext i32 %169 to i64
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %17, i64 noundef %170)
          to label %172 unwind label %213

172:                                              ; preds = %168
  %173 = load double, ptr %171, align 8, !tbaa !27
  %174 = invoke noundef double @_ZSt3powIdiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(double noundef %173, i32 noundef 2)
          to label %175 unwind label %213

175:                                              ; preds = %172
  %176 = fadd double %167, %174
  store double %176, ptr %26, align 8, !tbaa !27
  %177 = load double, ptr %26, align 8, !tbaa !27
  %178 = call double @sqrt(double noundef %177) #7
  %179 = load i32, ptr %25, align 4, !tbaa !9
  %180 = sext i32 %179 to i64
  %181 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %23, i64 noundef 0, i64 noundef %180)
          to label %182 unwind label %213

182:                                              ; preds = %175
  store double %178, ptr %181, align 8, !tbaa !27
  %183 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 3
  %184 = load i32, ptr %25, align 4, !tbaa !9
  %185 = sext i32 %184 to i64
  %186 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %17, i64 noundef %185)
          to label %187 unwind label %213

187:                                              ; preds = %182
  %188 = load double, ptr %186, align 8, !tbaa !27
  %189 = load i32, ptr %25, align 4, !tbaa !9
  %190 = sext i32 %189 to i64
  %191 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %13, i64 noundef %190)
          to label %192 unwind label %213

192:                                              ; preds = %187
  %193 = load double, ptr %191, align 8, !tbaa !27
  %194 = call double @atan2(double noundef %188, double noundef %193) #7
  %195 = load ptr, ptr %5, align 8, !tbaa !5
  %196 = load i32, ptr %25, align 4, !tbaa !9
  %197 = sext i32 %196 to i64
  %198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi0EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %195, i64 noundef 2, i64 noundef %197)
          to label %199 unwind label %213

199:                                              ; preds = %192
  %200 = load double, ptr %198, align 8, !tbaa !27
  %201 = fsub double %194, %200
  %202 = fptrunc double %201 to float
  %203 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %183, float noundef %202)
          to label %204 unwind label %213

204:                                              ; preds = %199
  %205 = fpext float %203 to double
  %206 = load i32, ptr %25, align 4, !tbaa !9
  %207 = sext i32 %206 to i64
  %208 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %23, i64 noundef 1, i64 noundef %207)
          to label %209 unwind label %213

209:                                              ; preds = %204
  store double %205, ptr %208, align 8, !tbaa !27
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %210

210:                                              ; preds = %209
  %211 = load i32, ptr %25, align 4, !tbaa !9
  %212 = add nsw i32 %211, 1
  store i32 %212, ptr %25, align 4, !tbaa !9
  br label %143, !llvm.loop !34

213:                                              ; preds = %204, %199, %192, %187, %182, %175, %172, %168, %165, %161
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %20, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %593

217:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #7
  %218 = load i32, ptr %8, align 4, !tbaa !9
  %219 = sext i32 %218 to i64
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2El(ptr noundef nonnull align 8 dereferenceable(16) %27, i64 noundef %219)
          to label %220 unwind label %233

220:                                              ; preds = %217
  %221 = load double, ptr %9, align 8, !tbaa !27
  %222 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 2
  %223 = load float, ptr %222, align 4, !tbaa !11
  %224 = fpext float %223 to double
  %225 = fdiv double %221, %224
  %226 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %27, i64 noundef 0)
          to label %227 unwind label %237

227:                                              ; preds = %220
  store double %225, ptr %226, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %228

228:                                              ; preds = %250, %227
  %229 = load i32, ptr %28, align 4, !tbaa !9
  %230 = load i32, ptr %8, align 4, !tbaa !9
  %231 = icmp slt i32 %229, %230
  br i1 %231, label %241, label %232

232:                                              ; preds = %228
  store i32 8, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %257

233:                                              ; preds = %217
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %20, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %21, align 4
  br label %592

237:                                              ; preds = %220
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %20, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %21, align 4
  br label %591

241:                                              ; preds = %228
  %242 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 2
  %243 = load float, ptr %242, align 4, !tbaa !11
  %244 = fpext float %243 to double
  %245 = fdiv double 5.000000e-01, %244
  %246 = load i32, ptr %28, align 4, !tbaa !9
  %247 = sext i32 %246 to i64
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %27, i64 noundef %247)
          to label %249 unwind label %253

249:                                              ; preds = %241
  store double %245, ptr %248, align 8, !tbaa !27
  br label %250

250:                                              ; preds = %249
  %251 = load i32, ptr %28, align 4, !tbaa !9
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr %28, align 4, !tbaa !9
  br label %228, !llvm.loop !35

253:                                              ; preds = %241
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %20, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %591

257:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE4ZeroEl(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseNullaryOp") align 8 %30, i64 noundef 2)
          to label %258 unwind label %307

258:                                              ; preds = %257
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %259 unwind label %307

259:                                              ; preds = %258
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %32) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind writable sret(%"class.Eigen::Block.184") align 8 %32, ptr noundef nonnull align 1 dereferenceable(1) %23, i64 noundef 0)
          to label %260 unwind label %311

260:                                              ; preds = %259
  invoke void @_ZNK5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEmlINS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS_17ProductReturnTypeIS4_T_Xsr8internal12product_typeIS4_S9_EE5valueEE4TypeERKNS0_IS9_EE(ptr dead_on_unwind writable sret(%"class.Eigen::GeneralProduct.274") align 8 %31, ptr noundef nonnull align 1 dereferenceable(1) %32, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %261 unwind label %311

261:                                              ; preds = %260
  %262 = invoke noundef double @_ZNK5Eigen14GeneralProductINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEENS2_IdLin1ELi1ELi0ELin1ELi1EEELi3EEcvKdEv(ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %263 unwind label %311

263:                                              ; preds = %261
  %264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %29, i64 noundef 0)
          to label %265 unwind label %311

265:                                              ; preds = %263
  store double %262, ptr %264, align 8, !tbaa !27
  call void @llvm.lifetime.end.p0(i64 40, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %36) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind writable sret(%"class.Eigen::Block.184") align 8 %36, ptr noundef nonnull align 1 dereferenceable(1) %23, i64 noundef 1)
          to label %266 unwind label %315

266:                                              ; preds = %265
  invoke void @_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEE5arrayEv(ptr dead_on_unwind writable sret(%"class.Eigen::ArrayWrapper.233") align 8 %35, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %267 unwind label %315

267:                                              ; preds = %266
  invoke void @_ZNK5Eigen9ArrayBaseINS_12ArrayWrapperINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEEE3cosEv(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseUnaryOp.275") align 8 %34, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %268 unwind label %315

268:                                              ; preds = %267
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_12CwiseUnaryOpINS_8internal13scalar_cos_opIdEEKNS_12ArrayWrapperINS_5BlockINS0_IdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEEEEEERKNS_9EigenBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %269 unwind label %315

269:                                              ; preds = %268
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %40) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind writable sret(%"class.Eigen::Block.184") align 8 %40, ptr noundef nonnull align 1 dereferenceable(1) %23, i64 noundef 1)
          to label %270 unwind label %319

270:                                              ; preds = %269
  invoke void @_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEE5arrayEv(ptr dead_on_unwind writable sret(%"class.Eigen::ArrayWrapper.233") align 8 %39, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %271 unwind label %319

271:                                              ; preds = %270
  invoke void @_ZNK5Eigen9ArrayBaseINS_12ArrayWrapperINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEEE3sinEv(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseUnaryOp.283") align 8 %38, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %272 unwind label %319

272:                                              ; preds = %271
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_12CwiseUnaryOpINS_8internal13scalar_sin_opIdEEKNS_12ArrayWrapperINS_5BlockINS0_IdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEEEEEERKNS_9EigenBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %273 unwind label %319

273:                                              ; preds = %272
  call void @llvm.lifetime.end.p0(i64 40, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  %274 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %275 unwind label %323

275:                                              ; preds = %273
  %276 = getelementptr inbounds %"class.Eigen::Transpose", ptr %43, i32 0, i32 0
  store ptr %274, ptr %276, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_9TransposeINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEEEmlIS3_EEKNS_17ProductReturnTypeIS4_T_Xsr8internal12product_typeIS4_S8_EE5valueEE4TypeERKNS0_IS8_EE(ptr dead_on_unwind writable sret(%"class.Eigen::GeneralProduct") align 8 %42, ptr noundef nonnull align 1 dereferenceable(1) %43, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %277 unwind label %323

277:                                              ; preds = %275
  %278 = invoke noundef double @_ZNK5Eigen14GeneralProductINS_9TransposeINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEES3_Li3EEcvKdEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %279 unwind label %323

279:                                              ; preds = %277
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  store double %278, ptr %41, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %280 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %281 unwind label %327

281:                                              ; preds = %279
  %282 = getelementptr inbounds %"class.Eigen::Transpose", ptr %46, i32 0, i32 0
  store ptr %280, ptr %282, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_9TransposeINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEEEmlIS3_EEKNS_17ProductReturnTypeIS4_T_Xsr8internal12product_typeIS4_S8_EE5valueEE4TypeERKNS0_IS8_EE(ptr dead_on_unwind writable sret(%"class.Eigen::GeneralProduct") align 8 %45, ptr noundef nonnull align 1 dereferenceable(1) %46, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %283 unwind label %327

283:                                              ; preds = %281
  %284 = invoke noundef double @_ZNK5Eigen14GeneralProductINS_9TransposeINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEES3_Li3EEcvKdEv(ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %285 unwind label %327

285:                                              ; preds = %283
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  store double %284, ptr %44, align 8, !tbaa !27
  %286 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 3
  %287 = load double, ptr %44, align 8, !tbaa !27
  %288 = load double, ptr %41, align 8, !tbaa !27
  %289 = call double @atan2(double noundef %287, double noundef %288) #7
  %290 = fptrunc double %289 to float
  %291 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %286, float noundef %290)
          to label %292 unwind label %331

292:                                              ; preds = %285
  %293 = fpext float %291 to double
  %294 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %29, i64 noundef 1)
          to label %295 unwind label %331

295:                                              ; preds = %292
  store double %293, ptr %294, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %48) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4ZeroEll(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseNullaryOp.28") align 8 %48, i64 noundef 2, i64 noundef 2)
          to label %296 unwind label %335

296:                                              ; preds = %295
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2INS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %297 unwind label %335

297:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #7
  %298 = load i32, ptr %7, align 4, !tbaa !9
  %299 = sext i32 %298 to i64
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4ZeroEll(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseNullaryOp.28") align 8 %50, i64 noundef %299, i64 noundef 2)
          to label %300 unwind label %339

300:                                              ; preds = %297
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2INS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %301 unwind label %339

301:                                              ; preds = %300
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  store i32 0, ptr %51, align 4, !tbaa !9
  br label %302

302:                                              ; preds = %400, %301
  %303 = load i32, ptr %51, align 4, !tbaa !9
  %304 = load i32, ptr %8, align 4, !tbaa !9
  %305 = icmp slt i32 %303, %304
  br i1 %305, label %343, label %306

306:                                              ; preds = %302
  store i32 11, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %456

307:                                              ; preds = %258, %257
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %20, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #7
  br label %590

311:                                              ; preds = %263, %261, %260, %259
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %20, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %589

315:                                              ; preds = %268, %267, %266, %265
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %20, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #7
  br label %588

319:                                              ; preds = %272, %271, %270, %269
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %20, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %38) #7
  br label %587

323:                                              ; preds = %277, %275, %273
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %20, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  br label %586

327:                                              ; preds = %283, %281, %279
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %20, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %585

331:                                              ; preds = %292, %285
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %20, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %21, align 4
  br label %585

335:                                              ; preds = %296, %295
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %20, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #7
  br label %584

339:                                              ; preds = %300, %297
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %20, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #7
  br label %583

343:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %54) #7
  %344 = load i32, ptr %51, align 4, !tbaa !9
  %345 = sext i32 %344 to i64
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3colEl(ptr dead_on_unwind writable sret(%"class.Eigen::Block.56") align 8 %54, ptr noundef nonnull align 1 dereferenceable(1) %23, i64 noundef %345)
          to label %346 unwind label %403

346:                                              ; preds = %343
  invoke void @_ZNK5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEEmiINS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS4_KT_EERKNS0_ISD_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.291") align 8 %53, ptr noundef nonnull align 1 dereferenceable(1) %54, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %347 unwind label %403

347:                                              ; preds = %346
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKNS_5BlockINS0_IdLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEKS1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %348 unwind label %403

348:                                              ; preds = %347
  call void @llvm.lifetime.end.p0(i64 40, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %53) #7
  %349 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 3
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %52, i64 noundef 1)
          to label %351 unwind label %407

351:                                              ; preds = %348
  %352 = load double, ptr %350, align 8, !tbaa !27
  %353 = fptrunc double %352 to float
  %354 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %349, float noundef %353)
          to label %355 unwind label %407

355:                                              ; preds = %351
  %356 = fpext float %354 to double
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %52, i64 noundef 1)
          to label %358 unwind label %407

358:                                              ; preds = %355
  store double %356, ptr %357, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 40, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %359 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %360 unwind label %411

360:                                              ; preds = %358
  %361 = getelementptr inbounds %"class.Eigen::Transpose", ptr %58, i32 0, i32 0
  store ptr %359, ptr %361, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEmlINS_9TransposeIS2_EEEEKNS_17ProductReturnTypeIS2_T_Xsr8internal12product_typeIS2_S8_EE5valueEE4TypeERKNS0_IS8_EE(ptr dead_on_unwind writable sret(%"class.Eigen::GeneralProduct.313") align 8 %57, ptr noundef nonnull align 1 dereferenceable(1) %52, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %362 unwind label %411

362:                                              ; preds = %360
  %363 = load i32, ptr %51, align 4, !tbaa !9
  %364 = sext i32 %363 to i64
  %365 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %27, i64 noundef %364)
          to label %366 unwind label %415

366:                                              ; preds = %362
  invoke void @_ZN5EigenmlINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS3_EELi2EEES3_S5_EEKNS_13ScaledProductIT_EERKNS_11ProductBaseIS8_T0_T1_EERKNS8_6ScalarE(ptr dead_on_unwind writable sret(%"class.Eigen::ScaledProduct") align 8 %56, ptr noundef nonnull align 8 dereferenceable(40) %57, ptr noundef nonnull align 8 dereferenceable(8) %365)
          to label %367 unwind label %415

367:                                              ; preds = %366
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEplINS_13ScaledProductINS_14GeneralProductINS1_IdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS7_EELi2EEEEEEEKNS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS2_KT_EERKNS0_ISH_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.299") align 8 %55, ptr noundef nonnull align 1 dereferenceable(1) %47, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %368 unwind label %419

368:                                              ; preds = %367
  %369 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS1_KNS_13ScaledProductINS_14GeneralProductINS0_IdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeISA_EELi2EEEEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %370 unwind label %423

370:                                              ; preds = %368
  call void @_ZN5Eigen13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEKNS_13ScaledProductINS_14GeneralProductINS4_IdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS9_EELi2EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %55) #7
  call void @_ZN5Eigen11ProductBaseINS_13ScaledProductINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS4_EELi2EEEEES4_S6_ED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %56) #7
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS3_EELi2EEES3_S5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %60) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %61) #7
  %371 = load ptr, ptr %5, align 8, !tbaa !5
  %372 = load i32, ptr %51, align 4, !tbaa !9
  %373 = sext i32 %372 to i64
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3colEl(ptr dead_on_unwind writable sret(%"class.Eigen::Block.150") align 8 %61, ptr noundef nonnull align 1 dereferenceable(1) %371, i64 noundef %373)
          to label %374 unwind label %430

374:                                              ; preds = %370
  %375 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 5
  invoke void @_ZNK5Eigen10MatrixBaseINS_5BlockIKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEEmiINS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS5_KT_EERKNS0_ISE_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.320") align 8 %60, ptr noundef nonnull align 1 dereferenceable(1) %61, ptr noundef nonnull align 1 dereferenceable(1) %375)
          to label %376 unwind label %430

376:                                              ; preds = %374
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKNS_5BlockIKNS0_IdLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEKS1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %377 unwind label %430

377:                                              ; preds = %376
  call void @llvm.lifetime.end.p0(i64 40, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %60) #7
  %378 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 3
  %379 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %59, i64 noundef 2)
          to label %380 unwind label %434

380:                                              ; preds = %377
  %381 = load double, ptr %379, align 8, !tbaa !27
  %382 = fptrunc double %381 to float
  %383 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %378, float noundef %382)
          to label %384 unwind label %434

384:                                              ; preds = %380
  %385 = fpext float %383 to double
  %386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %59, i64 noundef 2)
          to label %387 unwind label %434

387:                                              ; preds = %384
  store double %385, ptr %386, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 24, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #7
  %388 = load i32, ptr %51, align 4, !tbaa !9
  %389 = sext i32 %388 to i64
  %390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %27, i64 noundef %389)
          to label %391 unwind label %438

391:                                              ; preds = %387
  invoke void @_ZN5EigenmlERKdRKNS_10MatrixBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseUnaryOp.177") align 8 %64, ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %392 unwind label %438

392:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  %393 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %394 unwind label %442

394:                                              ; preds = %392
  %395 = getelementptr inbounds %"class.Eigen::Transpose", ptr %65, i32 0, i32 0
  store ptr %393, ptr %395, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_12CwiseUnaryOpINS_8internal18scalar_multiple_opIdEEKNS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEEEmlINS_9TransposeIS6_EEEEKNS_17ProductReturnTypeIS8_T_Xsr8internal12product_typeIS8_SE_EE5valueEE4TypeERKNS0_ISE_EE(ptr dead_on_unwind writable sret(%"class.Eigen::GeneralProduct.170") align 8 %63, ptr noundef nonnull align 1 dereferenceable(1) %64, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %396 unwind label %442

396:                                              ; preds = %394
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEplINS_14GeneralProductINS_12CwiseUnaryOpINS_8internal18scalar_multiple_opIdEEKNS1_IdLin1ELi1ELi0ELin1ELi1EEEEENS_9TransposeISA_EELi2EEEEEKNS_13CwiseBinaryOpINS7_13scalar_sum_opIdEEKS2_KT_EERKNS0_ISK_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.162") align 8 %62, ptr noundef nonnull align 1 dereferenceable(1) %49, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %397 unwind label %446

397:                                              ; preds = %396
  %398 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS1_KNS_14GeneralProductINS_12CwiseUnaryOpINS4_18scalar_multiple_opIdEEKNS0_IdLin1ELi1ELi0ELin1ELi1EEEEENS_9TransposeISC_EELi2EEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %399 unwind label %446

399:                                              ; preds = %397
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_12CwiseUnaryOpINS_8internal18scalar_multiple_opIdEEKNS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEENS_9TransposeIS7_EELi2EEES9_SB_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  br label %400

400:                                              ; preds = %399
  %401 = load i32, ptr %51, align 4, !tbaa !9
  %402 = add nsw i32 %401, 1
  store i32 %402, ptr %51, align 4, !tbaa !9
  br label %302, !llvm.loop !36

403:                                              ; preds = %347, %346, %343
  %404 = landingpad { ptr, i32 }
          cleanup
  %405 = extractvalue { ptr, i32 } %404, 0
  store ptr %405, ptr %20, align 8
  %406 = extractvalue { ptr, i32 } %404, 1
  store i32 %406, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %53) #7
  br label %455

407:                                              ; preds = %355, %351, %348
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %20, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %21, align 4
  br label %454

411:                                              ; preds = %360, %358
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %20, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %21, align 4
  br label %429

415:                                              ; preds = %366, %362
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %20, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %21, align 4
  br label %428

419:                                              ; preds = %367
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %20, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %21, align 4
  br label %427

423:                                              ; preds = %368
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %20, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %21, align 4
  call void @_ZN5Eigen13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEKNS_13ScaledProductINS_14GeneralProductINS4_IdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS9_EELi2EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %55) #7
  br label %427

427:                                              ; preds = %423, %419
  call void @_ZN5Eigen11ProductBaseINS_13ScaledProductINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS4_EELi2EEEEES4_S6_ED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %56) #7
  br label %428

428:                                              ; preds = %427, %415
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS3_EELi2EEES3_S5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %57) #7
  br label %429

429:                                              ; preds = %428, %411
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %55) #7
  br label %454

430:                                              ; preds = %376, %374, %370
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %20, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %60) #7
  br label %453

434:                                              ; preds = %384, %380, %377
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %20, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %21, align 4
  br label %452

438:                                              ; preds = %391, %387
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %20, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %21, align 4
  br label %451

442:                                              ; preds = %394, %392
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %20, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %21, align 4
  br label %450

446:                                              ; preds = %397, %396
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %20, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %21, align 4
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_12CwiseUnaryOpINS_8internal18scalar_multiple_opIdEEKNS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEENS_9TransposeIS7_EELi2EEES9_SB_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %63) #7
  br label %450

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

451:                                              ; preds = %450, %438
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #7
  br label %452

452:                                              ; preds = %451, %434
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #7
  br label %453

453:                                              ; preds = %452, %430
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  br label %454

454:                                              ; preds = %453, %429, %407
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #7
  br label %455

455:                                              ; preds = %454, %403
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %582

456:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 24, ptr %66) #7
  %457 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 7
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEplIS2_EEKNS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS2_KT_EERKNS0_ISA_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.328") align 8 %66, ptr noundef nonnull align 1 dereferenceable(1) %47, ptr noundef nonnull align 1 dereferenceable(1) %457)
          to label %458 unwind label %520

458:                                              ; preds = %456
  %459 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS1_S7_EEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %460 unwind label %520

460:                                              ; preds = %458
  call void @llvm.lifetime.end.p0(i64 24, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #7
  %461 = invoke ptr @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE7inverseEv(ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %462 unwind label %524

462:                                              ; preds = %460
  %463 = getelementptr inbounds %"struct.Eigen::internal::inverse_impl", ptr %69, i32 0, i32 0
  store ptr %461, ptr %463, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEmlINS_13ReturnByValueINS_8internal12inverse_implIS2_EEEEEEKNS_17ProductReturnTypeIS2_T_Xsr8internal12product_typeIS2_SB_EE5valueEE4TypeERKNS0_ISB_EE(ptr dead_on_unwind writable sret(%"class.Eigen::GeneralProduct.336") align 8 %68, ptr noundef nonnull align 1 dereferenceable(1) %49, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %464 unwind label %524

464:                                              ; preds = %462
  %465 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_13ReturnByValueINS_8internal12inverse_implIS3_EEEELi5EEES3_S8_EcvRKS3_Ev(ptr noundef nonnull align 8 dereferenceable(56) %68)
          to label %466 unwind label %528

466:                                              ; preds = %464
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %67, ptr noundef nonnull align 8 dereferenceable(24) %465)
          to label %467 unwind label %528

467:                                              ; preds = %466
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_13ReturnByValueINS_8internal12inverse_implIS3_EEEELi5EEES3_S8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %70) #7
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2El(ptr noundef nonnull align 8 dereferenceable(16) %70, i64 noundef 2)
          to label %468 unwind label %533

468:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %469 = load ptr, ptr %6, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.RadarReading, ptr %469, i32 0, i32 1
  %471 = load float, ptr %470, align 8, !tbaa !37
  %472 = fpext float %471 to double
  store double %472, ptr %72, align 8, !tbaa !27
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEElsERKd(ptr dead_on_unwind writable sret(%"struct.Eigen::CommaInitializer.349") align 8 %71, ptr noundef nonnull align 1 dereferenceable(1) %70, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %473 unwind label %537

473:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %474 = load ptr, ptr %6, align 8, !tbaa !5
  %475 = getelementptr inbounds %struct.RadarReading, ptr %474, i32 0, i32 2
  %476 = load float, ptr %475, align 4, !tbaa !38
  %477 = fpext float %476 to double
  store double %477, ptr %73, align 8, !tbaa !27
  %478 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEcmERKd(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %479 unwind label %541

479:                                              ; preds = %473
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %74) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %75) #7
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEmiIS2_EEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS2_KT_EERKNS0_ISA_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.350") align 8 %75, ptr noundef nonnull align 1 dereferenceable(1) %70, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %480 unwind label %546

480:                                              ; preds = %479
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS1_S7_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %481 unwind label %546

481:                                              ; preds = %480
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #7
  %482 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 3
  %483 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %74, i64 noundef 1)
          to label %484 unwind label %550

484:                                              ; preds = %481
  %485 = load double, ptr %483, align 8, !tbaa !27
  %486 = fptrunc double %485 to float
  %487 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %482, float noundef %486)
          to label %488 unwind label %550

488:                                              ; preds = %484
  %489 = fpext float %487 to double
  %490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %74, i64 noundef 1)
          to label %491 unwind label %550

491:                                              ; preds = %488
  store double %489, ptr %490, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 24, ptr %76) #7
  %492 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #7
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEmlINS1_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS_17ProductReturnTypeIS2_T_Xsr8internal12product_typeIS2_S7_EE5valueEE4TypeERKNS0_IS7_EE(ptr dead_on_unwind writable sret(%"class.Eigen::GeneralProduct.137") align 8 %77, ptr noundef nonnull align 1 dereferenceable(1) %67, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %493 unwind label %554

493:                                              ; preds = %491
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEplINS_14GeneralProductINS1_IdLin1ELin1ELi0ELin1ELin1EEES2_Li4EEEEEKNS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS2_KT_EERKNS0_ISD_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.358") align 8 %76, ptr noundef nonnull align 1 dereferenceable(1) %492, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %494 unwind label %558

494:                                              ; preds = %493
  %495 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 5
  %496 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSINS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS1_KNS_14GeneralProductINS0_IdLin1ELin1ELi0ELin1ELin1EEES1_Li4EEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %495, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %497 unwind label %558

497:                                              ; preds = %494
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS2_IdLin1ELi1ELi0ELin1ELi1EEELi4EEES3_S4_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %78) #7
  %498 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 40, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr %80) #7
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEmlIS2_EEKNS_17ProductReturnTypeIS2_T_Xsr8internal12product_typeIS2_S6_EE5valueEE4TypeERKNS0_IS6_EE(ptr dead_on_unwind writable sret(%"class.Eigen::GeneralProduct.390") align 8 %80, ptr noundef nonnull align 1 dereferenceable(1) %67, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %499 unwind label %563

499:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #7
  %500 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %501 unwind label %567

501:                                              ; preds = %499
  %502 = getelementptr inbounds %"class.Eigen::Transpose.381", ptr %81, i32 0, i32 0
  store ptr %500, ptr %502, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEEEmlINS_9TransposeIS3_EEEEKNS_17ProductReturnTypeIS4_T_Xsr8internal12product_typeIS4_SA_EE5valueEE4TypeERKNS0_ISA_EE(ptr dead_on_unwind writable sret(%"class.Eigen::GeneralProduct.374") align 8 %79, ptr noundef nonnull align 1 dereferenceable(1) %80, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %503 unwind label %567

503:                                              ; preds = %501
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEmiINS_14GeneralProductINS5_IS2_S2_Li5EEENS_9TransposeIS2_EELi5EEEEEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS2_KT_EERKNS0_ISF_EE(ptr dead_on_unwind writable sret(%"class.Eigen::CwiseBinaryOp.366") align 8 %78, ptr noundef nonnull align 1 dereferenceable(1) %498, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %504 unwind label %571

504:                                              ; preds = %503
  %505 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 4
  %506 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS1_KNS_14GeneralProductINS8_IS1_S1_Li5EEENS_9TransposeIS1_EELi5EEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %505, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %507 unwind label %571

507:                                              ; preds = %504
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS1_INS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEENS_9TransposeIS3_EELi5EEES4_S6_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %79) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEES3_S3_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %80) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #7
  %508 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 3
  %509 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 5
  %510 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %509, i64 noundef 2)
          to label %511 unwind label %550

511:                                              ; preds = %507
  %512 = load double, ptr %510, align 8, !tbaa !27
  %513 = fptrunc double %512 to float
  %514 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %508, float noundef %513)
          to label %515 unwind label %550

515:                                              ; preds = %511
  %516 = fpext float %514 to double
  %517 = getelementptr inbounds %class.UKFSLam, ptr %82, i32 0, i32 5
  %518 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %517, i64 noundef 2)
          to label %519 unwind label %550

519:                                              ; preds = %515
  store double %516, ptr %518, align 8, !tbaa !27
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  ret void

520:                                              ; preds = %458, %456
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %20, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %66) #7
  br label %582

524:                                              ; preds = %462, %460
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %20, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %21, align 4
  br label %532

528:                                              ; preds = %466, %464
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %20, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %21, align 4
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_13ReturnByValueINS_8internal12inverse_implIS3_EEEELi5EEES3_S8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  br label %532

532:                                              ; preds = %528, %524
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #7
  br label %581

533:                                              ; preds = %467
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %20, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %21, align 4
  br label %580

537:                                              ; preds = %468
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %20, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %21, align 4
  br label %545

541:                                              ; preds = %473
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %20, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %545

545:                                              ; preds = %541, %537
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  br label %579

546:                                              ; preds = %480, %479
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %20, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #7
  br label %578

550:                                              ; preds = %515, %511, %507, %488, %484, %481
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %20, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %21, align 4
  br label %577

554:                                              ; preds = %491
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %20, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %21, align 4
  br label %562

558:                                              ; preds = %494, %493
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %20, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %21, align 4
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS2_IdLin1ELi1ELi0ELin1ELi1EEELi4EEES3_S4_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %562

562:                                              ; preds = %558, %554
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #7
  br label %577

563:                                              ; preds = %497
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %20, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %21, align 4
  br label %576

567:                                              ; preds = %501, %499
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %20, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %21, align 4
  br label %575

571:                                              ; preds = %504, %503
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %20, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %21, align 4
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS1_INS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEENS_9TransposeIS3_EELi5EEES4_S6_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %79) #7
  br label %575

575:                                              ; preds = %571, %567
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #7
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEES3_S3_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %80) #7
  br label %576

576:                                              ; preds = %575, %563
  call void @llvm.lifetime.end.p0(i64 40, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #7
  br label %577

577:                                              ; preds = %576, %562, %550
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #7
  br label %578

578:                                              ; preds = %577, %546
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #7
  br label %579

579:                                              ; preds = %578, %545
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #7
  br label %580

580:                                              ; preds = %579, %533
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #7
  br label %581

581:                                              ; preds = %580, %532
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #7
  br label %582

582:                                              ; preds = %581, %520, %455
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #7
  br label %583

583:                                              ; preds = %582, %339
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  br label %584

584:                                              ; preds = %583, %335
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #7
  br label %585

585:                                              ; preds = %584, %331, %327
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  br label %586

586:                                              ; preds = %585, %323
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #7
  br label %587

587:                                              ; preds = %586, %319
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #7
  br label %588

588:                                              ; preds = %587, %315
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  br label %589

589:                                              ; preds = %588, %311
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #7
  br label %590

590:                                              ; preds = %589, %307
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #7
  br label %591

591:                                              ; preds = %590, %253, %237
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #7
  br label %592

592:                                              ; preds = %591, %233
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #7
  br label %593

593:                                              ; preds = %592, %213
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  br label %594

594:                                              ; preds = %593, %157
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  br label %595

595:                                              ; preds = %594, %156
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  br label %596

596:                                              ; preds = %595
  %597 = load ptr, ptr %20, align 8
  %598 = load i32, ptr %21, align 4
  %599 = insertvalue { ptr, i32 } poison, ptr %597, 0
  %600 = insertvalue { ptr, i32 } %599, i32 %598, 1
  resume { ptr, i32 } %600
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #6 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3powIdiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(double noundef, i32 noundef) #0

; Function Attrs: nounwind
declare double @sqrt(double noundef) #4

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5EigenmlINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS3_EELi2EEES3_S5_EEKNS_13ScaledProductIT_EERKNS_11ProductBaseIS8_T0_T1_EERKNS8_6ScalarE(ptr dead_on_unwind noalias writable sret(%"class.Eigen::ScaledProduct") align 8, ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE9transposeEv(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_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS1_KNS_14GeneralProductINS8_IS1_S1_Li5EEENS_9TransposeIS1_EELi5EEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) #2 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !14, i64 12}
!12 = !{!"_ZTS7UKFSLam", !13, i64 8, !14, i64 12, !15, i64 16, !16, i64 24, !20, i64 48, !16, i64 64, !16, i64 88, !23, i64 112}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"float", !7, i64 0}
!15 = !{!"_ZTS5Tools"}
!16 = !{!"_ZTSN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEE", !17, i64 0}
!17 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEE", !18, i64 0}
!18 = !{!"_ZTSN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EEE", !6, i64 0, !19, i64 8, !19, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!"_ZTSN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEE", !21, i64 0}
!21 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEE", !22, i64 0}
!22 = !{!"_ZTSN5Eigen12DenseStorageIdLin1ELin1ELi1ELi0EEE", !6, i64 0, !19, i64 8}
!23 = !{!"_ZTSSt6vectorIiSaIiEE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!28, !28, i64 0}
!28 = !{!"double", !7, i64 0}
!29 = !{!30, !31, i64 0}
!30 = !{!"_ZTS12RadarReading", !31, i64 0, !14, i64 8, !14, i64 12}
!31 = !{!"long long", !7, i64 0}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = distinct !{!34, !33}
!35 = distinct !{!35, !33}
!36 = distinct !{!36, !33}
!37 = !{!30, !14, i64 8}
!38 = !{!30, !14, i64 12}


; 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.Eigen::CwiseNullaryOp" = type { %"class.Eigen::internal::variable_if_dynamic", [8 x i8], %"struct.Eigen::internal::scalar_constant_op" }
%"class.Eigen::internal::variable_if_dynamic" = type { i64 }
%"struct.Eigen::internal::scalar_constant_op" = type { double }
%"class.Eigen::CwiseNullaryOp.28" = type { %"class.Eigen::internal::variable_if_dynamic", %"class.Eigen::internal::variable_if_dynamic", %"struct.Eigen::internal::scalar_constant_op" }
%"class.Eigen::Block.56" = type { %"class.Eigen::BlockImpl.57" }
%"class.Eigen::BlockImpl.57" = type { %"class.Eigen::internal::BlockImpl_dense.58" }
%"class.Eigen::internal::BlockImpl_dense.58" = type { %"class.Eigen::MapBase.base.69", ptr, i64 }
%"class.Eigen::MapBase.base.69" = type { %"class.Eigen::MapBase.base.68" }
%"class.Eigen::MapBase.base.68" = type <{ ptr, %"class.Eigen::internal::variable_if_dynamic", i8 }>
%"class.Eigen::Block.102" = type { %"class.Eigen::BlockImpl.103" }
%"class.Eigen::BlockImpl.103" = type { %"class.Eigen::internal::BlockImpl_dense.104" }
%"class.Eigen::internal::BlockImpl_dense.104" = type { %"class.Eigen::MapBase.105", ptr, i64 }
%"class.Eigen::MapBase.105" = type { ptr, [8 x i8], %"class.Eigen::internal::variable_if_dynamic" }
%"class.Eigen::GeneralProduct" = type { %"class.Eigen::Matrix.120" }
%"class.Eigen::Matrix.120" = type { %"class.Eigen::PlainObjectBase.121" }
%"class.Eigen::PlainObjectBase.121" = type { %"class.Eigen::DenseStorage.129" }
%"class.Eigen::DenseStorage.129" = type { %"struct.Eigen::internal::plain_array" }
%"struct.Eigen::internal::plain_array" = type { [1 x double] }
%"class.Eigen::GeneralProduct.137" = type { %"class.Eigen::ProductBase" }
%"class.Eigen::ProductBase" = type { ptr, ptr, %"class.Eigen::Matrix.2" }
%"class.Eigen::Matrix.2" = type { %"class.Eigen::PlainObjectBase.3" }
%"class.Eigen::PlainObjectBase.3" = type { %"class.Eigen::DenseStorage.11" }
%"class.Eigen::DenseStorage.11" = type { ptr, i64 }
%"class.Eigen::Block.150" = type { %"class.Eigen::BlockImpl.151" }
%"class.Eigen::BlockImpl.151" = type { %"class.Eigen::internal::BlockImpl_dense.152" }
%"class.Eigen::internal::BlockImpl_dense.152" = type { %"class.Eigen::MapBase.base.160", ptr, i64 }
%"class.Eigen::MapBase.base.160" = type <{ ptr, %"class.Eigen::internal::variable_if_dynamic", i8 }>
%"class.Eigen::CwiseBinaryOp.162" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::CwiseUnaryOp.177" = type { ptr, %"struct.Eigen::internal::scalar_multiple_op" }
%"struct.Eigen::internal::scalar_multiple_op" = type { double }
%"class.Eigen::GeneralProduct.170" = type { %"class.Eigen::ProductBase.171" }
%"class.Eigen::ProductBase.171" = type { %"class.Eigen::CwiseUnaryOp.177", %"class.Eigen::Transpose", %"class.Eigen::Matrix" }
%"class.Eigen::Transpose" = type { ptr }
%"class.Eigen::Matrix" = type { %"class.Eigen::PlainObjectBase" }
%"class.Eigen::PlainObjectBase" = type { %"class.Eigen::DenseStorage" }
%"class.Eigen::DenseStorage" = type { ptr, i64, i64 }
%"class.Eigen::Block.184" = type { %"class.Eigen::BlockImpl.185" }
%"class.Eigen::BlockImpl.185" = type { %"class.Eigen::internal::BlockImpl_dense.186" }
%"class.Eigen::internal::BlockImpl_dense.186" = type { %"class.Eigen::MapBase.187", ptr, i64 }
%"class.Eigen::MapBase.187" = type { %"class.Eigen::MapBase.188" }
%"class.Eigen::MapBase.188" = type { ptr, [8 x i8], %"class.Eigen::internal::variable_if_dynamic" }
%"class.Eigen::ArrayWrapper.233" = type { %"class.Eigen::Block.184" }
%"class.Eigen::CwiseBinaryOp.266" = type <{ %"class.Eigen::Block.102", %"class.Eigen::Block.102", [8 x i8] }>
%"class.Eigen::GeneralProduct.274" = type { %"class.Eigen::Matrix.120" }
%"class.Eigen::CwiseUnaryOp.275" = type <{ %"class.Eigen::ArrayWrapper.233", [8 x i8] }>
%"class.Eigen::CwiseUnaryOp.283" = type <{ %"class.Eigen::ArrayWrapper.233", [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.291" = type <{ %"class.Eigen::Block.56", ptr, [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.299" = type <{ ptr, %"class.Eigen::Matrix", [8 x i8] }>
%"class.Eigen::ScaledProduct" = type { %"class.Eigen::ProductBase.307", ptr, double }
%"class.Eigen::ProductBase.307" = type { ptr, %"class.Eigen::Transpose", %"class.Eigen::Matrix" }
%"class.Eigen::GeneralProduct.313" = type { %"class.Eigen::ProductBase.314" }
%"class.Eigen::ProductBase.314" = type { ptr, %"class.Eigen::Transpose", %"class.Eigen::Matrix" }
%"class.Eigen::CwiseBinaryOp.320" = type <{ %"class.Eigen::Block.150", ptr, [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.328" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::GeneralProduct.336" = type { %"class.Eigen::ProductBase.337" }
%"class.Eigen::ProductBase.337" = type { ptr, %"class.Eigen::Matrix", %"class.Eigen::Matrix" }
%"struct.Eigen::internal::inverse_impl" = type { ptr }
%"struct.Eigen::CommaInitializer.349" = type { ptr, i64, i64, i64 }
%"class.Eigen::CwiseBinaryOp.350" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.358" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::CwiseBinaryOp.366" = type <{ ptr, ptr, [8 x i8] }>
%"class.Eigen::GeneralProduct.374" = type { %"class.Eigen::ProductBase.375" }
%"class.Eigen::ProductBase.375" = type { ptr, %"class.Eigen::Transpose.381", %"class.Eigen::Matrix" }
%"class.Eigen::Transpose.381" = type { ptr }
%"class.Eigen::GeneralProduct.390" = type { %"class.Eigen::ProductBase.391" }
%"class.Eigen::ProductBase.391" = type { ptr, ptr, %"class.Eigen::Matrix" }

declare i32 @__gxx_personality_v0(...)

; 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 nounwind uwtable
declare dso_local void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE4ZeroEl(ptr dead_on_unwind noalias writable sret(%"class.Eigen::CwiseNullaryOp") align 8, i64 noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4ZeroEll(ptr dead_on_unwind noalias writable sret(%"class.Eigen::CwiseNullaryOp.28") align 8, i64 noundef, i64 noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @atan2(double noundef, double noundef) local_unnamed_addr #4

declare noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8), float noundef) local_unnamed_addr #5

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZNK5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4colsEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 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 #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7UKFSLam6updateERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERK12RadarReading(ptr noundef nonnull align 8 dereferenceable(136) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull readonly align 8 dereferenceable(16) %2) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.Eigen::Matrix.2", align 8
  %5 = alloca %"class.Eigen::CwiseBinaryOp.266", align 8
  %6 = alloca %"class.Eigen::Block.102", align 8
  %7 = alloca %"class.Eigen::Block.102", align 8
  %8 = alloca %"class.Eigen::Matrix.2", align 8
  %9 = alloca %"class.Eigen::CwiseBinaryOp.266", align 8
  %10 = alloca %"class.Eigen::Block.102", align 8
  %11 = alloca %"class.Eigen::Block.102", align 8
  %12 = alloca %"class.Eigen::Matrix", align 8
  %13 = alloca %"class.Eigen::CwiseNullaryOp.28", align 8
  %14 = alloca %"class.Eigen::Matrix.2", align 8
  %15 = alloca %"class.Eigen::Matrix.2", align 8
  %16 = alloca %"class.Eigen::CwiseNullaryOp", align 8
  %17 = alloca %"class.Eigen::GeneralProduct.274", align 8
  %18 = alloca %"class.Eigen::Block.184", align 8
  %19 = alloca %"class.Eigen::Matrix.2", align 8
  %20 = alloca %"class.Eigen::CwiseUnaryOp.275", align 8
  %21 = alloca %"class.Eigen::ArrayWrapper.233", align 8
  %22 = alloca %"class.Eigen::Block.184", align 8
  %23 = alloca %"class.Eigen::Matrix.2", align 8
  %24 = alloca %"class.Eigen::CwiseUnaryOp.283", align 8
  %25 = alloca %"class.Eigen::ArrayWrapper.233", align 8
  %26 = alloca %"class.Eigen::Block.184", align 8
  %27 = alloca %"class.Eigen::GeneralProduct", align 8
  %28 = alloca %"class.Eigen::Transpose", align 8
  %29 = alloca %"class.Eigen::GeneralProduct", align 8
  %30 = alloca %"class.Eigen::Transpose", align 8
  %31 = alloca %"class.Eigen::Matrix", align 8
  %32 = alloca %"class.Eigen::CwiseNullaryOp.28", align 8
  %33 = alloca %"class.Eigen::Matrix", align 8
  %34 = alloca %"class.Eigen::CwiseNullaryOp.28", align 8
  %35 = alloca %"class.Eigen::Matrix.2", align 8
  %36 = alloca %"class.Eigen::CwiseBinaryOp.291", align 8
  %37 = alloca %"class.Eigen::Block.56", align 8
  %38 = alloca %"class.Eigen::CwiseBinaryOp.299", align 8
  %39 = alloca %"class.Eigen::ScaledProduct", align 8
  %40 = alloca %"class.Eigen::GeneralProduct.313", align 8
  %41 = alloca %"class.Eigen::Transpose", align 8
  %42 = alloca %"class.Eigen::Matrix.2", align 8
  %43 = alloca %"class.Eigen::CwiseBinaryOp.320", align 8
  %44 = alloca %"class.Eigen::Block.150", align 8
  %45 = alloca %"class.Eigen::CwiseBinaryOp.162", align 8
  %46 = alloca %"class.Eigen::GeneralProduct.170", align 8
  %47 = alloca %"class.Eigen::CwiseUnaryOp.177", align 8
  %48 = alloca %"class.Eigen::Transpose", align 8
  %49 = alloca %"class.Eigen::CwiseBinaryOp.328", align 8
  %50 = alloca %"class.Eigen::Matrix", align 8
  %51 = alloca %"class.Eigen::GeneralProduct.336", align 8
  %52 = alloca %"struct.Eigen::internal::inverse_impl", align 8
  %53 = alloca %"class.Eigen::Matrix.2", align 8
  %54 = alloca %"struct.Eigen::CommaInitializer.349", align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca %"class.Eigen::Matrix.2", align 8
  %58 = alloca %"class.Eigen::CwiseBinaryOp.350", align 8
  %59 = alloca %"class.Eigen::CwiseBinaryOp.358", align 8
  %60 = alloca %"class.Eigen::GeneralProduct.137", align 8
  %61 = alloca %"class.Eigen::CwiseBinaryOp.366", align 8
  %62 = alloca %"class.Eigen::GeneralProduct.374", align 8
  %63 = alloca %"class.Eigen::GeneralProduct.390", align 8
  %64 = alloca %"class.Eigen::Transpose.381", align 8
  %65 = tail call noundef i64 @_ZNK5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4rowsEv(ptr noundef nonnull align 8 dereferenceable(24) %1)
  %66 = trunc i64 %65 to i32
  %67 = tail call noundef i64 @_ZNK5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4colsEv(ptr noundef nonnull align 8 dereferenceable(24) %1)
  %68 = trunc i64 %67 to i32
  %69 = getelementptr inbounds i8, ptr %0, i64 12
  %70 = load float, ptr %69, align 4, !tbaa !5
  %71 = sitofp i32 %66 to float
  %72 = fsub float %70, %71
  %73 = fpext float %72 to double
  %74 = getelementptr inbounds i8, ptr %0, i64 112
  %75 = tail call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %74) #7
  %.not = icmp eq i64 %75, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %3, %81
  %indvars.iv = phi i64 [ %indvars.iv.next, %81 ], [ 0, %3 ]
  %76 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %74, i64 noundef %indvars.iv) #7
  %77 = load i32, ptr %76, align 4, !tbaa !24
  %78 = sext i32 %77 to i64
  %79 = load i64, ptr %2, align 8, !tbaa !26
  %80 = icmp eq i64 %79, %78
  br i1 %80, label %._crit_edge.loopexit.split.loop.exit, label %81

81:                                               ; preds = %.lr.ph
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %82 = tail call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %74) #7
  %83 = icmp ugt i64 %82, %indvars.iv.next
  br i1 %83, label %.lr.ph, label %._crit_edge, !llvm.loop !29

._crit_edge.loopexit.split.loop.exit:             ; preds = %.lr.ph
  %84 = trunc nuw nsw i64 %indvars.iv to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %81, %._crit_edge.loopexit.split.loop.exit, %3
  %.048 = phi i32 [ 0, %3 ], [ %84, %._crit_edge.loopexit.split.loop.exit ], [ 0, %81 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #7
  %85 = shl nuw nsw i32 %.048, 1
  %86 = add nuw nsw i32 %85, 3
  %87 = zext nneg i32 %86 to i64
  call void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.102") align 8 %6, ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %87)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #7
  call void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.102") align 8 %7, ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef 0)
  call void @_ZNK5Eigen10MatrixBaseINS_5BlockIKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEmiIS5_EEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS5_KT_EERKNS0_ISD_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.266") align 8 %5, ptr noundef nonnull align 1 dereferenceable(1) %6, ptr noundef nonnull align 1 dereferenceable(1) %7)
  call void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKNS_5BlockIKNS0_IdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEESB_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 1 dereferenceable(1) %5)
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #7
  %88 = add nuw nsw i32 %85, 4
  %89 = zext nneg i32 %88 to i64
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.102") align 8 %10, ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %89)
          to label %90 unwind label %102

90:                                               ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #7
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.102") align 8 %11, ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef 1)
          to label %91 unwind label %104

91:                                               ; preds = %90
  invoke void @_ZNK5Eigen10MatrixBaseINS_5BlockIKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEmiIS5_EEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS5_KT_EERKNS0_ISD_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.266") align 8 %9, ptr noundef nonnull align 1 dereferenceable(1) %10, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %92 unwind label %104

92:                                               ; preds = %91
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKNS_5BlockIKNS0_IdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEESB_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %93 unwind label %104

93:                                               ; preds = %92
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #7
  %94 = shl nsw i32 %66, 1
  %95 = or disjoint i32 %94, 1
  %96 = sext i32 %95 to i64
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4ZeroEll(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseNullaryOp.28") align 8 %13, i64 noundef 2, i64 noundef %96)
          to label %97 unwind label %107

97:                                               ; preds = %93
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2INS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %98 unwind label %107

98:                                               ; preds = %97
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  %99 = icmp sgt i32 %68, 0
  br i1 %99, label %.lr.ph138, label %._crit_edge139

.lr.ph138:                                        ; preds = %98
  %100 = getelementptr inbounds i8, ptr %0, i64 16
  %wide.trip.count = and i64 %67, 2147483647
  br label %109

._crit_edge139:                                   ; preds = %137, %98
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #7
  %sext = shl i64 %67, 32
  %101 = ashr exact i64 %sext, 32
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2El(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %101)
          to label %141 unwind label %148

102:                                              ; preds = %._crit_edge
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %106

104:                                              ; preds = %92, %91, %90
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #7
  br label %106

106:                                              ; preds = %104, %102
  %.pn = phi { ptr, i32 } [ %105, %104 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #7
  br label %392

107:                                              ; preds = %97, %93
  %108 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  br label %391

109:                                              ; preds = %.lr.ph138, %137
  %indvars.iv149 = phi i64 [ 0, %.lr.ph138 ], [ %indvars.iv.next150, %137 ]
  %110 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %4, i64 noundef %indvars.iv149)
          to label %111 unwind label %139

111:                                              ; preds = %109
  %112 = load double, ptr %110, align 8, !tbaa !31
  %113 = call noundef double @_ZSt3powIdiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(double noundef %112, i32 noundef 2)
  %114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %8, i64 noundef %indvars.iv149)
          to label %115 unwind label %139

115:                                              ; preds = %111
  %116 = load double, ptr %114, align 8, !tbaa !31
  %117 = call noundef double @_ZSt3powIdiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(double noundef %116, i32 noundef 2)
  %118 = fadd double %113, %117
  %119 = call double @sqrt(double noundef %118) #7
  %120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 0, i64 noundef %indvars.iv149)
          to label %121 unwind label %139

121:                                              ; preds = %115
  store double %119, ptr %120, align 8, !tbaa !31
  %122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %8, i64 noundef %indvars.iv149)
          to label %123 unwind label %139

123:                                              ; preds = %121
  %124 = load double, ptr %122, align 8, !tbaa !31
  %125 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %4, i64 noundef %indvars.iv149)
          to label %126 unwind label %139

126:                                              ; preds = %123
  %127 = load double, ptr %125, align 8, !tbaa !31
  %128 = call double @atan2(double noundef %124, double noundef %127) #7
  %129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi0EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef 2, i64 noundef %indvars.iv149)
          to label %130 unwind label %139

130:                                              ; preds = %126
  %131 = load double, ptr %129, align 8, !tbaa !31
  %132 = fsub double %128, %131
  %133 = fptrunc double %132 to float
  %134 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %100, float noundef %133)
          to label %135 unwind label %139

135:                                              ; preds = %130
  %136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1EEclEll(ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 1, i64 noundef %indvars.iv149)
          to label %137 unwind label %139

137:                                              ; preds = %135
  %138 = fpext float %134 to double
  store double %138, ptr %136, align 8, !tbaa !31
  %indvars.iv.next150 = add nuw nsw i64 %indvars.iv149, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next150, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge139, label %109, !llvm.loop !33

139:                                              ; preds = %135, %130, %126, %123, %121, %115, %111, %109
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %390

141:                                              ; preds = %._crit_edge139
  %142 = load float, ptr %69, align 4, !tbaa !5
  %143 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %14, i64 noundef 0)
          to label %144 unwind label %150

144:                                              ; preds = %141
  %145 = fpext float %142 to double
  %146 = fdiv double %73, %145
  store double %146, ptr %143, align 8, !tbaa !31
  %147 = icmp sgt i32 %68, 1
  br i1 %147, label %.lr.ph142.preheader, label %._crit_edge143

.lr.ph142.preheader:                              ; preds = %144
  %wide.trip.count155 = and i64 %67, 2147483647
  br label %.lr.ph142

._crit_edge143:                                   ; preds = %154, %144
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE4ZeroEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseNullaryOp") align 8 %16, i64 noundef 2)
          to label %159 unwind label %200

148:                                              ; preds = %._crit_edge139
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %389

150:                                              ; preds = %141
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %388

.lr.ph142:                                        ; preds = %.lr.ph142.preheader, %154
  %indvars.iv152 = phi i64 [ 1, %.lr.ph142.preheader ], [ %indvars.iv.next153, %154 ]
  %152 = load float, ptr %69, align 4, !tbaa !5
  %153 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %14, i64 noundef %indvars.iv152)
          to label %154 unwind label %157

154:                                              ; preds = %.lr.ph142
  %155 = fpext float %152 to double
  %156 = fdiv double 5.000000e-01, %155
  store double %156, ptr %153, align 8, !tbaa !31
  %indvars.iv.next153 = add nuw nsw i64 %indvars.iv152, 1
  %exitcond156.not = icmp eq i64 %indvars.iv.next153, %wide.trip.count155
  br i1 %exitcond156.not, label %._crit_edge143, label %.lr.ph142, !llvm.loop !34

157:                                              ; preds = %.lr.ph142
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %388

159:                                              ; preds = %._crit_edge143
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %160 unwind label %200

160:                                              ; preds = %159
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.184") align 8 %18, ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 0)
          to label %161 unwind label %202

161:                                              ; preds = %160
  invoke void @_ZNK5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEmlINS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS_17ProductReturnTypeIS4_T_Xsr8internal12product_typeIS4_S9_EE5valueEE4TypeERKNS0_IS9_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::GeneralProduct.274") align 8 %17, ptr noundef nonnull align 1 dereferenceable(1) %18, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %162 unwind label %202

162:                                              ; preds = %161
  %163 = invoke noundef double @_ZNK5Eigen14GeneralProductINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEENS2_IdLin1ELi1ELi0ELin1ELi1EEELi3EEcvKdEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %164 unwind label %202

164:                                              ; preds = %162
  %165 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 0)
          to label %166 unwind label %202

166:                                              ; preds = %164
  store double %163, ptr %165, align 8, !tbaa !31
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.184") align 8 %22, ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 1)
          to label %167 unwind label %204

167:                                              ; preds = %166
  invoke void @_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEE5arrayEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::ArrayWrapper.233") align 8 %21, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %168 unwind label %204

168:                                              ; preds = %167
  invoke void @_ZNK5Eigen9ArrayBaseINS_12ArrayWrapperINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEEE3cosEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp.275") align 8 %20, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %169 unwind label %204

169:                                              ; preds = %168
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_12CwiseUnaryOpINS_8internal13scalar_cos_opIdEEKNS_12ArrayWrapperINS_5BlockINS0_IdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEEEEEERKNS_9EigenBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %170 unwind label %204

170:                                              ; preds = %169
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %26) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3rowEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.184") align 8 %26, ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef 1)
          to label %171 unwind label %206

171:                                              ; preds = %170
  invoke void @_ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEE5arrayEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::ArrayWrapper.233") align 8 %25, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %172 unwind label %206

172:                                              ; preds = %171
  invoke void @_ZNK5Eigen9ArrayBaseINS_12ArrayWrapperINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEEE3sinEv(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp.283") align 8 %24, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %173 unwind label %206

173:                                              ; preds = %172
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_12CwiseUnaryOpINS_8internal13scalar_sin_opIdEEKNS_12ArrayWrapperINS_5BlockINS0_IdLin1ELin1ELi0ELin1ELin1EEELi1ELin1ELb0EEEEEEEEERKNS_9EigenBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %174 unwind label %206

174:                                              ; preds = %173
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  %175 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %176 unwind label %208

176:                                              ; preds = %174
  store ptr %175, ptr %28, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_9TransposeINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEEEmlIS3_EEKNS_17ProductReturnTypeIS4_T_Xsr8internal12product_typeIS4_S8_EE5valueEE4TypeERKNS0_IS8_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::GeneralProduct") align 8 %27, ptr noundef nonnull align 1 dereferenceable(1) %28, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %177 unwind label %208

177:                                              ; preds = %176
  %178 = invoke noundef double @_ZNK5Eigen14GeneralProductINS_9TransposeINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEES3_Li3EEcvKdEv(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %179 unwind label %208

179:                                              ; preds = %177
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  %180 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %181 unwind label %210

181:                                              ; preds = %179
  store ptr %180, ptr %30, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_9TransposeINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEEEmlIS3_EEKNS_17ProductReturnTypeIS4_T_Xsr8internal12product_typeIS4_S8_EE5valueEE4TypeERKNS0_IS8_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::GeneralProduct") align 8 %29, ptr noundef nonnull align 1 dereferenceable(1) %30, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %182 unwind label %210

182:                                              ; preds = %181
  %183 = invoke noundef double @_ZNK5Eigen14GeneralProductINS_9TransposeINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEES3_Li3EEcvKdEv(ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %184 unwind label %210

184:                                              ; preds = %182
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  %185 = getelementptr inbounds i8, ptr %0, i64 16
  %186 = call double @atan2(double noundef %183, double noundef %178) #7
  %187 = fptrunc double %186 to float
  %188 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %185, float noundef %187)
          to label %189 unwind label %212

189:                                              ; preds = %184
  %190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef 1)
          to label %191 unwind label %212

191:                                              ; preds = %189
  %192 = fpext float %188 to double
  store double %192, ptr %190, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4ZeroEll(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseNullaryOp.28") align 8 %32, i64 noundef 2, i64 noundef 2)
          to label %193 unwind label %214

193:                                              ; preds = %191
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2INS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %194 unwind label %214

194:                                              ; preds = %193
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #7
  %sext90 = shl i64 %65, 32
  %195 = ashr exact i64 %sext90, 32
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE4ZeroEll(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseNullaryOp.28") align 8 %34, i64 noundef %195, i64 noundef 2)
          to label %196 unwind label %216

196:                                              ; preds = %194
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2INS_14CwiseNullaryOpINS_8internal18scalar_constant_opIdEES1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %197 unwind label %216

197:                                              ; preds = %196
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #7
  br i1 %99, label %.lr.ph146, label %._crit_edge147

.lr.ph146:                                        ; preds = %197
  %198 = getelementptr inbounds i8, ptr %0, i64 48
  %wide.trip.count160 = and i64 %67, 2147483647
  br label %218

._crit_edge147:                                   ; preds = %260, %197
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %49) #7
  %199 = getelementptr inbounds i8, ptr %0, i64 88
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEplIS2_EEKNS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS2_KT_EERKNS0_ISA_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.328") align 8 %49, ptr noundef nonnull align 1 dereferenceable(1) %31, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %292 unwind label %344

200:                                              ; preds = %159, %._crit_edge143
  %201 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #7
  br label %387

202:                                              ; preds = %164, %162, %161, %160
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  br label %386

204:                                              ; preds = %169, %168, %167, %166
  %205 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #7
  br label %385

206:                                              ; preds = %173, %172, %171, %170
  %207 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #7
  br label %384

208:                                              ; preds = %177, %176, %174
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  br label %383

210:                                              ; preds = %182, %181, %179
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %383

212:                                              ; preds = %189, %184
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %383

214:                                              ; preds = %193, %191
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #7
  br label %382

216:                                              ; preds = %196, %194
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #7
  br label %381

218:                                              ; preds = %.lr.ph146, %260
  %indvars.iv157 = phi i64 [ 0, %.lr.ph146 ], [ %indvars.iv.next158, %260 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %37) #7
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3colEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.56") align 8 %37, ptr noundef nonnull align 1 dereferenceable(1) %12, i64 noundef %indvars.iv157)
          to label %219 unwind label %261

219:                                              ; preds = %218
  invoke void @_ZNK5Eigen10MatrixBaseINS_5BlockINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEEmiINS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS4_KT_EERKNS0_ISD_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.291") align 8 %36, ptr noundef nonnull align 1 dereferenceable(1) %37, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %220 unwind label %261

220:                                              ; preds = %219
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKNS_5BlockINS0_IdLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEKS1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %221 unwind label %261

221:                                              ; preds = %220
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %36) #7
  %222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %35, i64 noundef 1)
          to label %223 unwind label %263

223:                                              ; preds = %221
  %224 = load double, ptr %222, align 8, !tbaa !31
  %225 = fptrunc double %224 to float
  %226 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %185, float noundef %225)
          to label %227 unwind label %263

227:                                              ; preds = %223
  %228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %35, i64 noundef 1)
          to label %229 unwind label %263

229:                                              ; preds = %227
  %230 = fpext float %226 to double
  store double %230, ptr %228, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #7
  %231 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %232 unwind label %265

232:                                              ; preds = %229
  store ptr %231, ptr %41, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEmlINS_9TransposeIS2_EEEEKNS_17ProductReturnTypeIS2_T_Xsr8internal12product_typeIS2_S8_EE5valueEE4TypeERKNS0_IS8_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::GeneralProduct.313") align 8 %40, ptr noundef nonnull align 1 dereferenceable(1) %35, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %233 unwind label %265

233:                                              ; preds = %232
  %234 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %14, i64 noundef %indvars.iv157)
          to label %235 unwind label %267

235:                                              ; preds = %233
  invoke void @_ZN5EigenmlINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS3_EELi2EEES3_S5_EEKNS_13ScaledProductIT_EERKNS_11ProductBaseIS8_T0_T1_EERKNS8_6ScalarE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::ScaledProduct") align 8 %39, ptr noundef nonnull align 8 dereferenceable(40) %40, ptr noundef nonnull align 8 dereferenceable(8) %234)
          to label %236 unwind label %267

236:                                              ; preds = %235
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEplINS_13ScaledProductINS_14GeneralProductINS1_IdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS7_EELi2EEEEEEEKNS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS2_KT_EERKNS0_ISH_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.299") align 8 %38, ptr noundef nonnull align 1 dereferenceable(1) %31, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %237 unwind label %269

237:                                              ; preds = %236
  %238 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS1_KNS_13ScaledProductINS_14GeneralProductINS0_IdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeISA_EELi2EEEEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %239 unwind label %271

239:                                              ; preds = %237
  call void @_ZN5Eigen13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEKNS_13ScaledProductINS_14GeneralProductINS4_IdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS9_EELi2EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %38) #7
  call void @_ZN5Eigen11ProductBaseINS_13ScaledProductINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS4_EELi2EEEEES4_S6_ED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %39) #7
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS3_EELi2EEES3_S5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %44) #7
  invoke void @_ZNK5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE3colEl(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::Block.150") align 8 %44, ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %indvars.iv157)
          to label %240 unwind label %276

240:                                              ; preds = %239
  invoke void @_ZNK5Eigen10MatrixBaseINS_5BlockIKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEEmiINS2_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS5_KT_EERKNS0_ISE_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.320") align 8 %43, ptr noundef nonnull align 1 dereferenceable(1) %44, ptr noundef nonnull align 1 dereferenceable(1) %198)
          to label %241 unwind label %276

241:                                              ; preds = %240
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKNS_5BlockIKNS0_IdLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEKS1_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %242 unwind label %276

242:                                              ; preds = %241
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %43) #7
  %243 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %42, i64 noundef 2)
          to label %244 unwind label %278

244:                                              ; preds = %242
  %245 = load double, ptr %243, align 8, !tbaa !31
  %246 = fptrunc double %245 to float
  %247 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %185, float noundef %246)
          to label %248 unwind label %278

248:                                              ; preds = %244
  %249 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %42, i64 noundef 2)
          to label %250 unwind label %278

250:                                              ; preds = %248
  %251 = fpext float %247 to double
  store double %251, ptr %249, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #7
  %252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %14, i64 noundef %indvars.iv157)
          to label %253 unwind label %280

253:                                              ; preds = %250
  invoke void @_ZN5EigenmlERKdRKNS_10MatrixBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseUnaryOp.177") align 8 %47, ptr noundef nonnull align 8 dereferenceable(8) %252, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %254 unwind label %280

254:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #7
  %255 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %256 unwind label %282

256:                                              ; preds = %254
  store ptr %255, ptr %48, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_12CwiseUnaryOpINS_8internal18scalar_multiple_opIdEEKNS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEEEmlINS_9TransposeIS6_EEEEKNS_17ProductReturnTypeIS8_T_Xsr8internal12product_typeIS8_SE_EE5valueEE4TypeERKNS0_ISE_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::GeneralProduct.170") align 8 %46, ptr noundef nonnull align 1 dereferenceable(1) %47, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %257 unwind label %282

257:                                              ; preds = %256
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEplINS_14GeneralProductINS_12CwiseUnaryOpINS_8internal18scalar_multiple_opIdEEKNS1_IdLin1ELi1ELi0ELin1ELi1EEEEENS_9TransposeISA_EELi2EEEEEKNS_13CwiseBinaryOpINS7_13scalar_sum_opIdEEKS2_KT_EERKNS0_ISK_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.162") align 8 %45, ptr noundef nonnull align 1 dereferenceable(1) %33, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %258 unwind label %284

258:                                              ; preds = %257
  %259 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS1_KNS_14GeneralProductINS_12CwiseUnaryOpINS4_18scalar_multiple_opIdEEKNS0_IdLin1ELi1ELi0ELin1ELi1EEEEENS_9TransposeISC_EELi2EEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %260 unwind label %284

260:                                              ; preds = %258
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_12CwiseUnaryOpINS_8internal18scalar_multiple_opIdEEKNS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEENS_9TransposeIS7_EELi2EEES9_SB_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #7
  %indvars.iv.next158 = add nuw nsw i64 %indvars.iv157, 1
  %exitcond161.not = icmp eq i64 %indvars.iv.next158, %wide.trip.count160
  br i1 %exitcond161.not, label %._crit_edge147, label %218, !llvm.loop !35

261:                                              ; preds = %220, %219, %218
  %262 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %36) #7
  br label %291

263:                                              ; preds = %227, %223, %221
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %290

265:                                              ; preds = %232, %229
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %275

267:                                              ; preds = %235, %233
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %274

269:                                              ; preds = %236
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %273

271:                                              ; preds = %237
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Eigen13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKNS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEKNS_13ScaledProductINS_14GeneralProductINS4_IdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS9_EELi2EEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(33) %38) #7
  br label %273

273:                                              ; preds = %271, %269
  %.pn106 = phi { ptr, i32 } [ %272, %271 ], [ %270, %269 ]
  call void @_ZN5Eigen11ProductBaseINS_13ScaledProductINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS4_EELi2EEEEES4_S6_ED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %39) #7
  br label %274

274:                                              ; preds = %273, %267
  %.pn106.pn = phi { ptr, i32 } [ %.pn106, %273 ], [ %268, %267 ]
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS3_EELi2EEES3_S5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %40) #7
  br label %275

275:                                              ; preds = %274, %265
  %.pn106.pn.pn = phi { ptr, i32 } [ %.pn106.pn, %274 ], [ %266, %265 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %38) #7
  br label %290

276:                                              ; preds = %241, %240, %239
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %43) #7
  br label %289

278:                                              ; preds = %248, %244, %242
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %288

280:                                              ; preds = %253, %250
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %287

282:                                              ; preds = %256, %254
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %286

284:                                              ; preds = %258, %257
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_12CwiseUnaryOpINS_8internal18scalar_multiple_opIdEEKNS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEENS_9TransposeIS7_EELi2EEES9_SB_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %46) #7
  br label %286

286:                                              ; preds = %284, %282
  %.pn110 = phi { ptr, i32 } [ %285, %284 ], [ %283, %282 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #7
  br label %287

287:                                              ; preds = %286, %280
  %.pn110.pn = phi { ptr, i32 } [ %.pn110, %286 ], [ %281, %280 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  br label %288

288:                                              ; preds = %287, %278
  %.pn110.pn.pn = phi { ptr, i32 } [ %.pn110.pn, %287 ], [ %279, %278 ]
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #7
  br label %289

289:                                              ; preds = %288, %276
  %.pn110.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn, %288 ], [ %277, %276 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #7
  br label %290

290:                                              ; preds = %289, %275, %263
  %.pn110.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn.pn, %289 ], [ %.pn106.pn.pn, %275 ], [ %264, %263 ]
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #7
  br label %291

291:                                              ; preds = %290, %261
  %.pn110.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn.pn.pn, %290 ], [ %262, %261 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #7
  br label %380

292:                                              ; preds = %._crit_edge147
  %293 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS1_S7_EEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %294 unwind label %344

294:                                              ; preds = %292
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %50) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #7
  %295 = invoke ptr @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE7inverseEv(ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %296 unwind label %346

296:                                              ; preds = %294
  store ptr %295, ptr %52, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEmlINS_13ReturnByValueINS_8internal12inverse_implIS2_EEEEEEKNS_17ProductReturnTypeIS2_T_Xsr8internal12product_typeIS2_SB_EE5valueEE4TypeERKNS0_ISB_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::GeneralProduct.336") align 8 %51, ptr noundef nonnull align 1 dereferenceable(1) %33, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %297 unwind label %346

297:                                              ; preds = %296
  %298 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_13ReturnByValueINS_8internal12inverse_implIS3_EEEELi5EEES3_S8_EcvRKS3_Ev(ptr noundef nonnull align 8 dereferenceable(56) %51)
          to label %299 unwind label %348

299:                                              ; preds = %297
  invoke void @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %50, ptr noundef nonnull align 8 dereferenceable(24) %298)
          to label %300 unwind label %348

300:                                              ; preds = %299
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_13ReturnByValueINS_8internal12inverse_implIS3_EEEELi5EEES3_S8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #7
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2El(ptr noundef nonnull align 8 dereferenceable(16) %53, i64 noundef 2)
          to label %301 unwind label %351

301:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #7
  %302 = getelementptr inbounds i8, ptr %2, i64 8
  %303 = load float, ptr %302, align 8, !tbaa !36
  %304 = fpext float %303 to double
  store double %304, ptr %55, align 8, !tbaa !31
  invoke void @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEElsERKd(ptr dead_on_unwind nonnull writable sret(%"struct.Eigen::CommaInitializer.349") align 8 %54, ptr noundef nonnull align 1 dereferenceable(1) %53, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %305 unwind label %353

305:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #7
  %306 = getelementptr inbounds i8, ptr %2, i64 12
  %307 = load float, ptr %306, align 4, !tbaa !37
  %308 = fpext float %307 to double
  store double %308, ptr %56, align 8, !tbaa !31
  %309 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Eigen16CommaInitializerINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEcmERKd(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %310 unwind label %355

310:                                              ; preds = %305
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #7
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %57) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %58) #7
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEmiIS2_EEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS2_KT_EERKNS0_ISA_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.350") align 8 %58, ptr noundef nonnull align 1 dereferenceable(1) %53, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %311 unwind label %358

311:                                              ; preds = %310
  invoke void @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS1_S7_EEEERKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %312 unwind label %358

312:                                              ; preds = %311
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #7
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %57, i64 noundef 1)
          to label %314 unwind label %360

314:                                              ; preds = %312
  %315 = load double, ptr %313, align 8, !tbaa !31
  %316 = fptrunc double %315 to float
  %317 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %185, float noundef %316)
          to label %318 unwind label %360

318:                                              ; preds = %314
  %319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %57, i64 noundef 1)
          to label %320 unwind label %360

320:                                              ; preds = %318
  %321 = fpext float %317 to double
  store double %321, ptr %319, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %59) #7
  %322 = getelementptr inbounds i8, ptr %0, i64 48
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #7
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEmlINS1_IdLin1ELi1ELi0ELin1ELi1EEEEEKNS_17ProductReturnTypeIS2_T_Xsr8internal12product_typeIS2_S7_EE5valueEE4TypeERKNS0_IS7_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::GeneralProduct.137") align 8 %60, ptr noundef nonnull align 1 dereferenceable(1) %50, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %323 unwind label %362

323:                                              ; preds = %320
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEplINS_14GeneralProductINS1_IdLin1ELin1ELi0ELin1ELin1EEES2_Li4EEEEEKNS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS2_KT_EERKNS0_ISD_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.358") align 8 %59, ptr noundef nonnull align 1 dereferenceable(1) %322, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %324 unwind label %364

324:                                              ; preds = %323
  %325 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSINS_13CwiseBinaryOpINS_8internal13scalar_sum_opIdEEKS1_KNS_14GeneralProductINS0_IdLin1ELin1ELi0ELin1ELin1EEES1_Li4EEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %322, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %326 unwind label %364

326:                                              ; preds = %324
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS2_IdLin1ELi1ELi0ELin1ELi1EEELi4EEES3_S4_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %61) #7
  %327 = getelementptr inbounds i8, ptr %0, i64 24
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %62) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %63) #7
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEmlIS2_EEKNS_17ProductReturnTypeIS2_T_Xsr8internal12product_typeIS2_S6_EE5valueEE4TypeERKNS0_IS6_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::GeneralProduct.390") align 8 %63, ptr noundef nonnull align 1 dereferenceable(1) %50, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %328 unwind label %367

328:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #7
  %329 = invoke ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE9transposeEv(ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %330 unwind label %369

330:                                              ; preds = %328
  store ptr %329, ptr %64, align 8
  invoke void @_ZNK5Eigen10MatrixBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEEEmlINS_9TransposeIS3_EEEEKNS_17ProductReturnTypeIS4_T_Xsr8internal12product_typeIS4_SA_EE5valueEE4TypeERKNS0_ISA_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::GeneralProduct.374") align 8 %62, ptr noundef nonnull align 1 dereferenceable(1) %63, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %331 unwind label %369

331:                                              ; preds = %330
  invoke void @_ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEmiINS_14GeneralProductINS5_IS2_S2_Li5EEENS_9TransposeIS2_EELi5EEEEEKNS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS2_KT_EERKNS0_ISF_EE(ptr dead_on_unwind nonnull writable sret(%"class.Eigen::CwiseBinaryOp.366") align 8 %61, ptr noundef nonnull align 1 dereferenceable(1) %327, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %332 unwind label %371

332:                                              ; preds = %331
  %333 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEaSINS_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS1_KNS_14GeneralProductINS8_IS1_S1_Li5EEENS_9TransposeIS1_EELi5EEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24) %327, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %334 unwind label %371

334:                                              ; preds = %332
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS1_INS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEENS_9TransposeIS3_EELi5EEES4_S6_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #7
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEES3_S3_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %63) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %61) #7
  %335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %322, i64 noundef 2)
          to label %336 unwind label %360

336:                                              ; preds = %334
  %337 = load double, ptr %335, align 8, !tbaa !31
  %338 = fptrunc double %337 to float
  %339 = invoke noundef float @_ZN5Tools15normalize_angleEf(ptr noundef nonnull align 8 dereferenceable(8) %185, float noundef %338)
          to label %340 unwind label %360

340:                                              ; preds = %336
  %341 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi1EEclEl(ptr noundef nonnull align 1 dereferenceable(1) %322, i64 noundef 2)
          to label %342 unwind label %360

342:                                              ; preds = %340
  %343 = fpext float %339 to double
  store double %343, ptr %341, align 8, !tbaa !31
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #7
  ret void

344:                                              ; preds = %292, %._crit_edge147
  %345 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #7
  br label %380

346:                                              ; preds = %296, %294
  %347 = landingpad { ptr, i32 }
          cleanup
  br label %350

348:                                              ; preds = %299, %297
  %349 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS_13ReturnByValueINS_8internal12inverse_implIS3_EEEELi5EEES3_S8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %51) #7
  br label %350

350:                                              ; preds = %348, %346
  %.pn91 = phi { ptr, i32 } [ %349, %348 ], [ %347, %346 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %51) #7
  br label %379

351:                                              ; preds = %300
  %352 = landingpad { ptr, i32 }
          cleanup
  br label %378

353:                                              ; preds = %301
  %354 = landingpad { ptr, i32 }
          cleanup
  br label %357

355:                                              ; preds = %305
  %356 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #7
  call void @_ZN5Eigen16CommaInitializerINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %357

357:                                              ; preds = %355, %353
  %.pn93 = phi { ptr, i32 } [ %356, %355 ], [ %354, %353 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #7
  br label %377

358:                                              ; preds = %311, %310
  %359 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #7
  br label %376

360:                                              ; preds = %340, %336, %334, %318, %314, %312
  %361 = landingpad { ptr, i32 }
          cleanup
  br label %375

362:                                              ; preds = %320
  %363 = landingpad { ptr, i32 }
          cleanup
  br label %366

364:                                              ; preds = %324, %323
  %365 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS2_IdLin1ELi1ELi0ELin1ELi1EEELi4EEES3_S4_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %366

366:                                              ; preds = %364, %362
  %.pn95 = phi { ptr, i32 } [ %365, %364 ], [ %363, %362 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #7
  br label %375

367:                                              ; preds = %326
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %374

369:                                              ; preds = %330, %328
  %370 = landingpad { ptr, i32 }
          cleanup
  br label %373

371:                                              ; preds = %332, %331
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS1_INS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEENS_9TransposeIS3_EELi5EEES4_S6_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #7
  br label %373

373:                                              ; preds = %371, %369
  %.pn97 = phi { ptr, i32 } [ %372, %371 ], [ %370, %369 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #7
  call void @_ZN5Eigen11ProductBaseINS_14GeneralProductINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEES3_Li5EEES3_S3_ED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %63) #7
  br label %374

374:                                              ; preds = %373, %367
  %.pn97.pn = phi { ptr, i32 } [ %.pn97, %373 ], [ %368, %367 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %61) #7
  br label %375

375:                                              ; preds = %374, %366, %360
  %.pn100 = phi { ptr, i32 } [ %361, %360 ], [ %.pn97.pn, %374 ], [ %.pn95, %366 ]
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %57) #7
  br label %376

376:                                              ; preds = %375, %358
  %.pn100.pn = phi { ptr, i32 } [ %.pn100, %375 ], [ %359, %358 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #7
  br label %377

377:                                              ; preds = %376, %357
  %.pn100.pn.pn = phi { ptr, i32 } [ %.pn100.pn, %376 ], [ %.pn93, %357 ]
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #7
  br label %378

378:                                              ; preds = %377, %351
  %.pn100.pn.pn.pn = phi { ptr, i32 } [ %.pn100.pn.pn, %377 ], [ %352, %351 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #7
  br label %379

379:                                              ; preds = %378, %350
  %.pn100.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn100.pn.pn.pn, %378 ], [ %.pn91, %350 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #7
  br label %380

380:                                              ; preds = %379, %344, %291
  %.pn110.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn.pn.pn.pn, %291 ], [ %.pn100.pn.pn.pn.pn, %379 ], [ %345, %344 ]
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  br label %381

381:                                              ; preds = %380, %216
  %.pn110.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn.pn.pn.pn.pn, %380 ], [ %217, %216 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #7
  br label %382

382:                                              ; preds = %381, %214
  %.pn110.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn.pn.pn.pn.pn.pn, %381 ], [ %215, %214 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #7
  br label %383

383:                                              ; preds = %210, %212, %382, %208
  %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %209, %208 ], [ %.pn110.pn.pn.pn.pn.pn.pn.pn.pn, %382 ], [ %213, %212 ], [ %211, %210 ]
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  br label %384

384:                                              ; preds = %383, %206
  %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %383 ], [ %207, %206 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #7
  br label %385

385:                                              ; preds = %384, %204
  %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %384 ], [ %205, %204 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #7
  br label %386

386:                                              ; preds = %385, %202
  %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %385 ], [ %203, %202 ]
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #7
  br label %387

387:                                              ; preds = %386, %200
  %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %386 ], [ %201, %200 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #7
  br label %388

388:                                              ; preds = %387, %157, %150
  %.pn126 = phi { ptr, i32 } [ %158, %157 ], [ %.pn110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %387 ], [ %151, %150 ]
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #7
  br label %389

389:                                              ; preds = %388, %148
  %.pn126.pn = phi { ptr, i32 } [ %.pn126, %388 ], [ %149, %148 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  br label %390

390:                                              ; preds = %389, %139
  %.pn129 = phi { ptr, i32 } [ %140, %139 ], [ %.pn126.pn, %389 ]
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  br label %391

391:                                              ; preds = %390, %107
  %.pn129.pn = phi { ptr, i32 } [ %.pn129, %390 ], [ %108, %107 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #7
  br label %392

392:                                              ; preds = %391, %106
  %.pn129.pn.pn = phi { ptr, i32 } [ %.pn129.pn, %391 ], [ %.pn, %106 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  call void @_ZN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #7
  resume { ptr, i32 } %.pn129.pn.pn
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #6 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3powIdiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(double noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK5Eigen15DenseCoeffsBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEELi0EEclEll(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 @_ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEC2El(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5EigenmlINS_14GeneralProductINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEENS_9TransposeIS3_EELi2EEES3_S5_EEKNS_13ScaledProductIT_EERKNS_11ProductBaseIS8_T0_T1_EERKNS8_6ScalarE(ptr dead_on_unwind noalias writable sret(%"class.Eigen::ScaledProduct") align 8, ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEE9transposeEv(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_13CwiseBinaryOpINS_8internal20scalar_difference_opIdEEKS1_KNS_14GeneralProductINS8_IS1_S1_Li5EEENS_9TransposeIS1_EELi5EEEEEEERS1_RKNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #2 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !10, i64 12}
!6 = !{!"_ZTS7UKFSLam", !7, i64 8, !10, i64 12, !11, i64 16, !12, i64 24, !17, i64 48, !12, i64 64, !12, i64 88, !20, i64 112}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"float", !8, i64 0}
!11 = !{!"_ZTS5Tools"}
!12 = !{!"_ZTSN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEE", !13, i64 0}
!13 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEE", !14, i64 0}
!14 = !{!"_ZTSN5Eigen12DenseStorageIdLin1ELin1ELin1ELi0EEE", !15, i64 0, !16, i64 8, !16, i64 16}
!15 = !{!"any pointer", !8, i64 0}
!16 = !{!"long", !8, i64 0}
!17 = !{!"_ZTSN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEE", !18, i64 0}
!18 = !{!"_ZTSN5Eigen15PlainObjectBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEEE", !19, i64 0}
!19 = !{!"_ZTSN5Eigen12DenseStorageIdLin1ELin1ELi1ELi0EEE", !15, i64 0, !16, i64 8}
!20 = !{!"_ZTSSt6vectorIiSaIiEE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!24 = !{!25, !25, i64 0}
!25 = !{!"int", !8, i64 0}
!26 = !{!27, !28, i64 0}
!27 = !{!"_ZTS12RadarReading", !28, i64 0, !10, i64 8, !10, i64 12}
!28 = !{!"long long", !8, i64 0}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!32, !32, i64 0}
!32 = !{!"double", !8, i64 0}
!33 = distinct !{!33, !30}
!34 = distinct !{!34, !30}
!35 = distinct !{!35, !30}
!36 = !{!27, !10, i64 8}
!37 = !{!27, !10, i64 12}


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