Compiler warnings/suboptimal code in InnerProduct
Summary
Similar to #2900 (closed) , the code in InnerProduct.h ignores the MaxSizeAtCompileTime and only uses SizeAtCompileTime. As a result, suboptimal/wrong vector instructions are generated, and GCC warns about array subscript outside array bounds (Warray-bounds)
Environment
- Operating System : Linux
- Architecture : x64
- Eigen Version : master branch
- Compiler Version : recent GCC version (e.g. 14.2.0)
-
Compile Flags :
-msse -mavx -O3 -DNDEBUG -Wall -Wextra(-O3 -DNDEBUGare typical release flags) - Vector Extension : SSE and AVX
Minimal Example
#include <iostream>
#include <Eigen/Core>
int main(int argc, char* argv[]) {
if(argc<2) {
std::cout << "Please specify size" << std::endl;
return 0;
}
#if 1 // choose between examples
// gives compiler warning
// inner_product_evaluator should choose packet size 4, even if packet size 8 is available
// currently chooses packet size 8, which is too large and can never be used at runtime
// if instead packet size 4 had been chosen, and size is 4 or 5, then it can use the vector instruction
const int size = atoi(argv[1]); // given at runtime, e.g. 4
Eigen::Matrix<float, 1, 1> dest;
Eigen::Matrix<float, 5, 1> a, b;
a.setRandom();
b.setRandom();
dest.noalias() = a.tail(size).transpose() * b.tail(size);
#else
// gives compiler warning
// inner_product_evaluator should choose Vectorize = false
// currently chooses Vectorize = true and packet size 8
const int size = atoi(argv[1]);
Eigen::Matrix<float, 1, 1> dest;
Eigen::Matrix<float, 3, 1> a, b;
a.setRandom();
b.setRandom();
dest.noalias() = a.tail(size).transpose() * b.tail(size);
#endif
}
Click to show compiler warnings
In file included from /usr/lib/gcc/x86_64-linux-gnu/14/include/immintrin.h:43,
from /home/markus/eigen/Eigen/src/Core/util/ConfigureVectorization.h:361,
from /home/markus/eigen/Eigen/Core:22,
from /tmp/eigeninner.cpp:2:
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:96:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:160:44,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript ‘__m256_u[0]’ is partly outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
In file included from /home/markus/eigen/Eigen/Core:312:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:95:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:160:44,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript ‘__m256_u[0]’ is partly outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:96:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:161:65,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript 1 is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [32, 52] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:95:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:161:65,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript 1 is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [32, 52] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:96:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:162:65,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript 2 is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [64, 84] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:95:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:162:65,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript 2 is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [64, 84] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:96:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:164:46,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript 3 is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [96, 116] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:95:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:164:46,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript 3 is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [96, 116] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:102:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:173:53,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [4, 268435452] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [128, 8589934484] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:101:75,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:173:53,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [4, 268435452] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [128, 8589934484] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:102:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:174:53,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [5, 268435453] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [160, 8589934516] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:101:75,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:174:53,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [5, 268435453] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [160, 8589934516] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:102:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:175:53,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [6, 268435454] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [192, 8589934548] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:101:75,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:175:53,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [6, 268435454] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset [192, 8589934548] into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:102:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:167:31,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript ‘__m256_u[0]’ is partly outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:101:75,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:167:31,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript ‘__m256_u[0]’ is partly outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:102:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:168:31,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [1, 288230376151711743] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset 32 into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:101:75,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:168:31,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [1, 288230376151711743] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset 32 into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:102:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:169:31,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [2, 288230376151711743] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset 64 into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:101:75,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:169:31,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [2, 288230376151711743] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset 64 into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:102:68,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:170:31,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [3, 288230376151711743] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset 96 into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
In function ‘__m256 _mm256_loadu_ps(const float*)’,
inlined from ‘Packet Eigen::internal::ploadu(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float]’ at /home/markus/eigen/Eigen/src/Core/arch/AVX/PacketMath.h:1508:52,
inlined from ‘Packet Eigen::internal::ploadt(const typename unpacket_traits<T>::type*) [with Packet = __vector(8) float; int Alignment = 0]’ at /home/markus/eigen/Eigen/src/Core/GenericPacketMath.h:1338:26,
inlined from ‘PacketType Eigen::internal::mapbase_evaluator<Derived, PlainObjectType>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; Derived = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; PlainObjectType = Eigen::Matrix<float, -1, 1, 0, 5, 1>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:1043:50,
inlined from ‘PacketType Eigen::internal::unary_evaluator<Eigen::Transpose<Derived>, Eigen::internal::IndexBased>::packet(Eigen::Index) const [with int LoadMode = 0; PacketType = __vector(8) float; ArgType = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/CoreEvaluators.h:308:59,
inlined from ‘PacketType Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::packet(const PacketType&, Eigen::Index) const [with PacketType = __vector(8) float; int LhsMode = 0; int RhsMode = 0; Func = Eigen::internal::scalar_inner_product_op<float, float, false>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:101:75,
inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<float, float, false>, Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:170:31,
inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; bool Conj = false]’ at /home/markus/eigen/Eigen/src/Core/InnerProduct.h:257:46,
inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 6>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:241:35,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Matrix<float, 1, 1>; Lhs = Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >; Rhs = Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>; int Options = 0; Scalar = float]’ at /home/markus/eigen/Eigen/src/Core/ProductEvaluators.h:133:43,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 1, 1>; Src = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; Func = assign_op<float, float>]’ at /home/markus/eigen/Eigen/src/Core/AssignEvaluator.h:879:51,
inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false> >, Eigen::Block<Eigen::Matrix<float, 5, 1>, -1, 1, false>, 0>; ExpressionType = Eigen::Matrix<float, 1, 1>; StorageBase = Eigen::MatrixBase]’ at /home/markus/eigen/Eigen/src/Core/NoAlias.h:42:29,
inlined from ‘int main(int, char**)’ at /tmp/eigeninner.cpp:18:60:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:905:23: warning: array subscript [3, 288230376151711743] is outside array bounds of ‘float [5]’ [-Warray-bounds=]
905 | return *(__m256_u *)__P;
| ^~~
/home/markus/eigen/Eigen/src/Core/DenseStorage.h: In function ‘int main(int, char**)’:
/home/markus/eigen/Eigen/src/Core/DenseStorage.h:68:5: note: at offset 96 into object ‘Eigen::internal::plain_array<float, 5, 0, 0>::array’ of size 20
68 | T array[Size];
| ^~~~~
Note: it is necessary in this example to read the size from the command line. If it is specified as a constant in the code (e.g. const int size = 4;), GCC seems to be smart enough to figure out that this if-condition (https://gitlab.com/libeigen/eigen/-/blob/master/Eigen/src/Core/InnerProduct.h#L134) is true and not display a warning.
Originally, I saw these warnings coming from this line: https://gitlab.com/libeigen/eigen/-/blob/master/Eigen/src/Householder/Householder.h#L114 while using colPivHouseholderQr.
Steps to reproduce
- Compile code with recent GCC compiler and
-msse -mavx -O3 -DNDEBUG -Wall -Wextra - GCC shows warnings
What is the current bug behavior?
- The logic in InnerProduct.h does not take the MaxSizeAtCompileTime of Lhs/Rhs into account when choosing the packet size
- The logic in InnerProduct.h does not take the MaxSizeAtCompileTime of Lhs/Rhs into account when choosing between vector implementation and scalar loop
- The vector version of
inner_product_implseems to generate vector instructions for four packets, then chooses at compile time whether/how many to use
To be clear, there is no segmentation fault or invalid access at runtime (verified with valgrind), because the code correctly chooses not to use the vector instructions. However, the compiler warnings are annoying and the generated code is not as efficient as it could be.
What is the expected correct behavior?
- The logic in InnerProduct.h does take the MaxSizeAtCompileTime of Lhs/Rhs into account when choosing the packet size
- The logic in InnerProduct.h does take the MaxSizeAtCompileTime of Lhs/Rhs into account when choosing between vector implementation and scalar loop
- The vector version of
inner_product_implshould be changed (or an additional version ofinner_product_implintroduced) so that medium-sized products are better handled (large enough that vectorization is possible, but smaller than 4*PacketSize).
Anything else that might help
The solution will probably be similar to how #2900 (closed) was fixed. Let me know if I should open a merge request.