mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Added initial NEON support, most tests pass however we had to use some hackish workarounds
as gcc on ARM (both CodeSourcery 4.4.1 used and experimental 4.5) fail to ensure proper alignment with __attribute__((aligned(16))). This has to be fixed upstream to remove the workarounds.
This commit is contained in:
@@ -88,8 +88,13 @@ class ei_compute_matrix_flags
|
||||
enum {
|
||||
row_major_bit = Options&RowMajor ? RowMajorBit : 0,
|
||||
is_dynamic_size_storage = MaxRows==Dynamic || MaxCols==Dynamic,
|
||||
#if !defined(__ARM_NEON__)
|
||||
is_fixed_size_aligned
|
||||
= (!is_dynamic_size_storage)
|
||||
#else
|
||||
// FIXME!!! This is a hack because ARM gcc does not honour __attribute__((aligned(16))) properly
|
||||
is_fixed_size_aligned = 0
|
||||
#endif
|
||||
&& (((MaxCols*MaxRows) % ei_packet_traits<Scalar>::size) == 0),
|
||||
aligned_bit = (((Options&DontAlign)==0)
|
||||
&& (is_dynamic_size_storage || is_fixed_size_aligned))
|
||||
|
||||
Reference in New Issue
Block a user