Hey, I'm trying to package xsimd for Fedora and I have weird failures on armv7hl, ppc64le and s390x architectures.
I run basically:
cmake -DBUILD_TESTS=ON .
make
make install
make xtest
ppc64le says: unrecognized command line option '-march=native'
armv7hl and s390x have more failures:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:40:58: error: 'XSIMD_DEFAULT_ALIGNMENT' was not declared in this scope; did you mean 'XSIMD_DEFAULT_ALLOCATOR'?
40 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ba(93, 123), ca(93);
| ^~~~~~~~~~~~~~~~~~~~~~~
| XSIMD_DEFAULT_ALLOCATOR
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:40:58: error: template argument 2 is invalid
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:40:81: error: template argument 2 is invalid
40 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ba(93, 123), ca(93);
| ^~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:40:94: error: expression list treated as compound expression in initializer [-fpermissive]
40 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ba(93, 123), ca(93);
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:40:87: warning: left operand of comma operator has no effect [-Wunused-value]
40 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ba(93, 123), ca(93);
| ^~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:40:107: error: expression list treated as compound expression in initializer [-fpermissive]
40 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ba(93, 123), ca(93);
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:40:100: warning: left operand of comma operator has no effect [-Wunused-value]
40 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ba(93, 123), ca(93);
| ^~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:50:25: error: request for member 'begin' in 'aa', which is of non-class type 'int'
50 | xsimd::transform(aa.begin(), aa.end(), ba.begin(), c.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:50:37: error: request for member 'end' in 'aa', which is of non-class type 'int'
50 | xsimd::transform(aa.begin(), aa.end(), ba.begin(), c.begin(),
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:50:47: error: request for member 'begin' in 'ba', which is of non-class type 'int'
50 | xsimd::transform(aa.begin(), aa.end(), ba.begin(), c.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:55:25: error: request for member 'begin' in 'aa', which is of non-class type 'int'
55 | xsimd::transform(aa.begin(), aa.end(), b.begin(), c.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:55:37: error: request for member 'end' in 'aa', which is of non-class type 'int'
55 | xsimd::transform(aa.begin(), aa.end(), b.begin(), c.begin(),
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:60:45: error: request for member 'begin' in 'ba', which is of non-class type 'int'
60 | xsimd::transform(a.begin(), a.end(), ba.begin(), c.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:65:25: error: request for member 'begin' in 'aa', which is of non-class type 'int'
65 | xsimd::transform(aa.begin(), aa.end(), ba.begin(), ca.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:65:37: error: request for member 'end' in 'aa', which is of non-class type 'int'
65 | xsimd::transform(aa.begin(), aa.end(), ba.begin(), ca.begin(),
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:65:47: error: request for member 'begin' in 'ba', which is of non-class type 'int'
65 | xsimd::transform(aa.begin(), aa.end(), ba.begin(), ca.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:65:59: error: request for member 'begin' in 'ca', which is of non-class type 'int'
65 | xsimd::transform(aa.begin(), aa.end(), ba.begin(), ca.begin(),
| ^~~~~
In file included from /usr/include/gtest/gtest.h:59,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:67:65: error: request for member 'begin' in 'ca', which is of non-class type 'int'
67 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:67:99: error: request for member 'size' in 'ca', which is of non-class type 'int'
67 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:68:18: error: request for member 'begin' in 'ca', which is of non-class type 'int'
68 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:68:30: error: request for member 'end' in 'ca', which is of non-class type 'int'
68 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:70:25: error: request for member 'begin' in 'aa', which is of non-class type 'int'
70 | xsimd::transform(aa.begin(), aa.end(), b.begin(), ca.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:70:37: error: request for member 'end' in 'aa', which is of non-class type 'int'
70 | xsimd::transform(aa.begin(), aa.end(), b.begin(), ca.begin(),
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:70:58: error: request for member 'begin' in 'ca', which is of non-class type 'int'
70 | xsimd::transform(aa.begin(), aa.end(), b.begin(), ca.begin(),
| ^~~~~
In file included from /usr/include/gtest/gtest.h:59,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:72:65: error: request for member 'begin' in 'ca', which is of non-class type 'int'
72 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:72:99: error: request for member 'size' in 'ca', which is of non-class type 'int'
72 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:73:18: error: request for member 'begin' in 'ca', which is of non-class type 'int'
73 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:73:30: error: request for member 'end' in 'ca', which is of non-class type 'int'
73 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:75:45: error: request for member 'begin' in 'ba', which is of non-class type 'int'
75 | xsimd::transform(a.begin(), a.end(), ba.begin(), ca.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:75:57: error: request for member 'begin' in 'ca', which is of non-class type 'int'
75 | xsimd::transform(a.begin(), a.end(), ba.begin(), ca.begin(),
| ^~~~~
In file included from /usr/include/gtest/gtest.h:59,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:77:65: error: request for member 'begin' in 'ca', which is of non-class type 'int'
77 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:77:99: error: request for member 'size' in 'ca', which is of non-class type 'int'
77 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:78:18: error: request for member 'begin' in 'ca', which is of non-class type 'int'
78 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:78:30: error: request for member 'end' in 'ca', which is of non-class type 'int'
78 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp: In member function 'virtual void xsimd_unary_transform_Test::TestBody()':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:86:58: error: 'XSIMD_DEFAULT_ALIGNMENT' was not declared in this scope; did you mean 'XSIMD_DEFAULT_ALLOCATOR'?
86 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ca(93);
| ^~~~~~~~~~~~~~~~~~~~~~~
| XSIMD_DEFAULT_ALLOCATOR
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:86:58: error: template argument 2 is invalid
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:86:81: error: template argument 2 is invalid
86 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ca(93);
| ^~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:86:94: error: expression list treated as compound expression in initializer [-fpermissive]
86 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ca(93);
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:86:87: warning: left operand of comma operator has no effect [-Wunused-value]
86 | std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>> aa(93, 123), ca(93);
| ^~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:96:25: error: request for member 'begin' in 'aa', which is of non-class type 'int'
96 | xsimd::transform(aa.begin(), aa.end(), c.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:96:37: error: request for member 'end' in 'aa', which is of non-class type 'int'
96 | xsimd::transform(aa.begin(), aa.end(), c.begin(),
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:101:45: error: request for member 'begin' in 'ca', which is of non-class type 'int'
101 | xsimd::transform(a.begin(), a.end(), ca.begin(),
| ^~~~~
In file included from /usr/include/gtest/gtest.h:59,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:103:65: error: request for member 'begin' in 'ca', which is of non-class type 'int'
103 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:103:99: error: request for member 'size' in 'ca', which is of non-class type 'int'
103 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:104:18: error: request for member 'begin' in 'ca', which is of non-class type 'int'
104 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:104:30: error: request for member 'end' in 'ca', which is of non-class type 'int'
104 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:106:25: error: request for member 'begin' in 'aa', which is of non-class type 'int'
106 | xsimd::transform(aa.begin(), aa.end(), ca.begin(),
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:106:37: error: request for member 'end' in 'aa', which is of non-class type 'int'
106 | xsimd::transform(aa.begin(), aa.end(), ca.begin(),
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:106:47: error: request for member 'begin' in 'ca', which is of non-class type 'int'
106 | xsimd::transform(aa.begin(), aa.end(), ca.begin(),
| ^~~~~
In file included from /usr/include/gtest/gtest.h:59,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:108:65: error: request for member 'begin' in 'ca', which is of non-class type 'int'
108 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:108:99: error: request for member 'size' in 'ca', which is of non-class type 'int'
108 | EXPECT_TRUE(std::equal(expected.begin(), expected.end(), ca.begin()) && expected.size() == ca.size());
| ^~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:109:18: error: request for member 'begin' in 'ca', which is of non-class type 'int'
109 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:109:30: error: request for member 'end' in 'ca', which is of non-class type 'int'
109 | std::fill(ca.begin(), ca.end(), -1); // erase
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp: At global scope:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:115:80: error: 'XSIMD_DEFAULT_ALIGNMENT' was not declared in this scope; did you mean 'XSIMD_DEFAULT_ALLOCATOR'?
115 | using aligned_vec_t = std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>>;
| ^~~~~~~~~~~~~~~~~~~~~~~
| XSIMD_DEFAULT_ALLOCATOR
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:115:80: error: template argument 2 is invalid
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:115:103: error: template argument 2 is invalid
115 | using aligned_vec_t = std::vector<double, xsimd::aligned_allocator<double, XSIMD_DEFAULT_ALIGNMENT>>;
| ^~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:120:5: error: 'aligned_vec_t' does not name a type
120 | aligned_vec_t vec = aligned_vec_t(num_elements, 123.);
| ^~~~~~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:121:5: error: 'aligned_vec_t' does not name a type
121 | aligned_vec_t small_vec = aligned_vec_t(small_num, 42.);
| ^~~~~~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp: In member function 'virtual void xsimd_reduce_unaligned_begin_unaligned_end_Test::TestBody()':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:136:34: error: 'vec' was not declared in this scope
136 | auto const begin = std::next(vec.begin());
| ^~~
In file included from /usr/include/gtest/gtest.h:382,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:139:5: error: template argument 1 is invalid
139 | EXPECT_EQ(std::accumulate(begin, end, init), xsimd::reduce(begin, end, init));
| ^~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:141:8: error: 'small_vec' was not declared in this scope; did you mean 'small_num'?
141 | if(small_vec.size() > 1)
| ^~~~~~~~~
| small_num
In file included from /usr/include/gtest/gtest.h:382,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:146:9: error: template argument 1 is invalid
146 | EXPECT_EQ(std::accumulate(sbegin, send, init), xsimd::reduce(sbegin, send, init));
| ^~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp: In member function 'virtual void xsimd_reduce_unaligned_begin_aligned_end_Test::TestBody()':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:152:34: error: 'vec' was not declared in this scope
152 | auto const begin = std::next(vec.begin());
| ^~~
In file included from /usr/include/gtest/gtest.h:382,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:155:5: error: template argument 1 is invalid
155 | EXPECT_EQ(std::accumulate(begin, end, init), xsimd::reduce(begin, end, init));
| ^~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:157:8: error: 'small_vec' was not declared in this scope; did you mean 'small_num'?
157 | if(small_vec.size() > 1)
| ^~~~~~~~~
| small_num
In file included from /usr/include/gtest/gtest.h:382,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:162:9: error: template argument 1 is invalid
162 | EXPECT_EQ(std::accumulate(sbegin, send, init), xsimd::reduce(sbegin, send, init));
| ^~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp: In member function 'virtual void xsimd_reduce_aligned_begin_unaligned_end_Test::TestBody()':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:168:24: error: 'vec' was not declared in this scope
168 | auto const begin = vec.begin();
| ^~~
In file included from /usr/include/gtest/gtest.h:382,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:171:5: error: template argument 1 is invalid
171 | EXPECT_EQ(std::accumulate(begin, end, init), xsimd::reduce(begin, end, init));
| ^~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:173:8: error: 'small_vec' was not declared in this scope; did you mean 'small_num'?
173 | if(small_vec.size() > 1)
| ^~~~~~~~~
| small_num
In file included from /usr/include/gtest/gtest.h:382,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:178:9: error: template argument 1 is invalid
178 | EXPECT_EQ(std::accumulate(sbegin, send, init), xsimd::reduce(sbegin, send, init));
| ^~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp: In member function 'virtual void xsimd_reduce_aligned_begin_aligned_end_Test::TestBody()':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:184:24: error: 'vec' was not declared in this scope
184 | auto const begin = vec.begin();
| ^~~
In file included from /usr/include/gtest/gtest.h:382,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:187:5: error: template argument 1 is invalid
187 | EXPECT_EQ(std::accumulate(begin, end, init), xsimd::reduce(begin, end, init));
| ^~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:189:8: error: 'small_vec' was not declared in this scope; did you mean 'small_num'?
189 | if(small_vec.size() > 1)
| ^~~~~~~~~
| small_num
In file included from /usr/include/gtest/gtest.h:382,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:194:9: error: template argument 1 is invalid
194 | EXPECT_EQ(std::accumulate(sbegin, send, init), xsimd::reduce(sbegin, send, init));
| ^~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp: In member function 'virtual void xsimd_reduce_using_custom_binary_function_Test::TestBody()':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:200:24: error: 'vec' was not declared in this scope
200 | auto const begin = vec.begin();
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:205:8: error: 'small_vec' was not declared in this scope; did you mean 'small_num'?
205 | if(small_vec.size() > 1)
| ^~~~~~~~~
| small_num
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp: In member function 'virtual void xsimd_iterator_Test::TestBody()':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:216:56: error: 'XSIMD_DEFAULT_ALIGNMENT' was not declared in this scope; did you mean 'XSIMD_DEFAULT_ALLOCATOR'?
216 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> a(10 * 16, 0.2);
| ^~~~~~~~~~~~~~~~~~~~~~~
| XSIMD_DEFAULT_ALLOCATOR
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:216:56: error: template argument 2 is invalid
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:216:79: error: template argument 2 is invalid
216 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> a(10 * 16, 0.2);
| ^~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:216:96: error: expression list treated as compound expression in initializer [-fpermissive]
216 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> a(10 * 16, 0.2);
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:216:87: warning: left operand of comma operator has no effect [-Wunused-value]
216 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> a(10 * 16, 0.2);
| ~~~^~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:217:79: error: template argument 2 is invalid
217 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> b(1000, 2.);
| ^~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:217:92: error: expression list treated as compound expression in initializer [-fpermissive]
217 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> b(1000, 2.);
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:217:84: warning: left operand of comma operator has no effect [-Wunused-value]
217 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> b(1000, 2.);
| ^~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:218:79: error: template argument 2 is invalid
218 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> c(1000, 3.);
| ^~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:218:92: error: expression list treated as compound expression in initializer [-fpermissive]
218 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> c(1000, 3.);
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:218:84: warning: left operand of comma operator has no effect [-Wunused-value]
218 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> c(1000, 3.);
| ^~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:220:17: error: request for member 'begin' in 'a', which is of non-class type 'int'
220 | std::iota(a.begin(), a.end(), 0.f);
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:220:28: error: request for member 'end' in 'a', which is of non-class type 'int'
220 | std::iota(a.begin(), a.end(), 0.f);
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:221:32: error: request for member 'begin' in 'a', which is of non-class type 'int'
221 | std::vector<float> a_cpy(a.begin(), a.end());
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:221:43: error: request for member 'end' in 'a', which is of non-class type 'int'
221 | std::vector<float> a_cpy(a.begin(), a.end());
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:224:58: error: invalid types 'int[int]' for array subscript
224 | auto begin = xsimd::aligned_iterator<batch_type>(&a[0]);
| ^
In file included from /builddir/build/BUILD/xsimd-7.2.3/include/xsimd/xsimd.hpp:20,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:13:
/builddir/build/BUILD/xsimd-7.2.3/include/xsimd/stl/iterator.hpp: In instantiation of 'class xsimd::aligned_iterator<float>':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:224:59: required from here
/builddir/build/BUILD/xsimd-7.2.3/include/xsimd/stl/iterator.hpp:86:15: error: 'float' is not a class, struct, or union type
86 | using value_type = typename B::value_type;
| ^~~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:225:56: error: invalid types 'int[int]' for array subscript
225 | auto end = xsimd::aligned_iterator<batch_type>(&a[0] + a.size());
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:225:62: error: request for member 'size' in 'a', which is of non-class type 'int'
225 | auto end = xsimd::aligned_iterator<batch_type>(&a[0] + a.size());
| ^~~~
In file included from /usr/include/gtest/gtest.h:59,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:237:19: error: request for member 'size' in 'a', which is of non-class type 'int'
237 | EXPECT_TRUE(a.size() == a_cpy.size() && std::equal(a.begin(), a.end(), a_cpy.begin()));
| ^~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:237:58: error: request for member 'begin' in 'a', which is of non-class type 'int'
237 | EXPECT_TRUE(a.size() == a_cpy.size() && std::equal(a.begin(), a.end(), a_cpy.begin()));
| ^~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:237:69: error: request for member 'end' in 'a', which is of non-class type 'int'
237 | EXPECT_TRUE(a.size() == a_cpy.size() && std::equal(a.begin(), a.end(), a_cpy.begin()));
| ^~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:239:53: error: invalid types 'int[int]' for array subscript
239 | begin = xsimd::aligned_iterator<batch_type>(&a[0]);
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:242:33: error: 'batch_type' is not a class, namespace, or enumeration
242 | for (std::size_t i = 0; i < batch_type::size; ++i)
| ^~~~~~~~~~
In file included from /usr/include/gtest/gtest.h:382,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:15:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:244:24: error: invalid types 'int[std::size_t {aka long unsigned int}]' for array subscript
244 | EXPECT_NEAR(a[i], sinf(a_cpy[i]), 1e-6);
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:217:82: warning: unused variable 'b' [-Wunused-variable]
217 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> b(1000, 2.);
| ^
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_algorithms.cpp:218:82: warning: unused variable 'c' [-Wunused-variable]
218 | std::vector<float, xsimd::aligned_allocator<float, XSIMD_DEFAULT_ALIGNMENT>> c(1000, 3.);
| ^
make[3]: *** [test/CMakeFiles/test_xsimd.dir/build.make:92: test/CMakeFiles/test_xsimd.dir/xsimd_algorithms.cpp.o] Error 1
/usr/bin/cmake -S/builddir/build/BUILD/xsimd-7.2.3 -B/builddir/build/BUILD/xsimd-7.2.3 --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/make -f CMakeFiles/Makefile2 xtest
make[1]: Entering directory '/builddir/build/BUILD/xsimd-7.2.3'
/usr/bin/cmake -S/builddir/build/BUILD/xsimd-7.2.3 -B/builddir/build/BUILD/xsimd-7.2.3 --check-build-system CMakeFiles/Makefile.cmake 0
make[1]: Leaving directory '/builddir/build/BUILD/xsimd-7.2.3'
make[1]: Entering directory '/builddir/build/BUILD/xsimd-7.2.3'
/usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/xsimd-7.2.3/CMakeFiles 19
make[1]: Leaving directory '/builddir/build/BUILD/xsimd-7.2.3'
/usr/bin/make -f CMakeFiles/Makefile2 test/CMakeFiles/xtest.dir/all
/usr/bin/make -f test/CMakeFiles/test_xsimd.dir/build.make test/CMakeFiles/test_xsimd.dir/depend
make[3]: Entering directory '/builddir/build/BUILD/xsimd-7.2.3'
cd /builddir/build/BUILD/xsimd-7.2.3 && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/xsimd-7.2.3 /builddir/build/BUILD/xsimd-7.2.3/test /builddir/build/BUILD/xsimd-7.2.3 /builddir/build/BUILD/xsimd-7.2.3/test /builddir/build/BUILD/xsimd-7.2.3/test/CMakeFiles/test_xsimd.dir/DependInfo.cmake --color=
Dependee "/builddir/build/BUILD/xsimd-7.2.3/test/CMakeFiles/test_xsimd.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/xsimd-7.2.3/test/CMakeFiles/test_xsimd.dir/depend.internal".
Dependee "/builddir/build/BUILD/xsimd-7.2.3/test/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/xsimd-7.2.3/test/CMakeFiles/test_xsimd.dir/depend.internal".
Scanning dependencies of target test_xsimd
make[3]: Leaving directory '/builddir/build/BUILD/xsimd-7.2.3'
/usr/bin/make -f test/CMakeFiles/test_xsimd.dir/build.make test/CMakeFiles/test_xsimd.dir/build
make[3]: Entering directory '/builddir/build/BUILD/xsimd-7.2.3'
[ 5%] Building CXX object test/CMakeFiles/test_xsimd.dir/main.cpp.o
cd /builddir/build/BUILD/xsimd-7.2.3/test && /usr/bin/c++ -I/builddir/build/BUILD/xsimd-7.2.3/include -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -g -fPIC -march=native -Wunused-parameter -Wextra -Wreorder -std=c++11 -DNDEBUG -o CMakeFiles/test_xsimd.dir/main.cpp.o -c /builddir/build/BUILD/xsimd-7.2.3/test/main.cpp
make[3]: Leaving directory '/builddir/build/BUILD/xsimd-7.2.3'
make[3]: Entering directory '/builddir/build/BUILD/xsimd-7.2.3'
[ 10%] Building CXX object test/CMakeFiles/test_xsimd.dir/xsimd_api_test.cpp.o
cd /builddir/build/BUILD/xsimd-7.2.3/test && /usr/bin/c++ -I/builddir/build/BUILD/xsimd-7.2.3/include -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -g -fPIC -march=native -Wunused-parameter -Wextra -Wreorder -std=c++11 -DNDEBUG -o CMakeFiles/test_xsimd.dir/xsimd_api_test.cpp.o -c /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_api_test.cpp
make[3]: Leaving directory '/builddir/build/BUILD/xsimd-7.2.3'
make[3]: Entering directory '/builddir/build/BUILD/xsimd-7.2.3'
[ 15%] Building CXX object test/CMakeFiles/test_xsimd.dir/xsimd_algorithms.cpp.o
cd /builddir/build/BUILD/xsimd-7.2.3/test && /usr/bin/c++ -I/builddir/build/BUILD/xsimd-7.2.3/include -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -g -fPIC -march=native -Wunused-parameter -Wextra -Wreorder -std=c+make[3]: *** Waiting for unfinished jobs....
In file included from /builddir/build/BUILD/xsimd-7.2.3/include/xsimd/types/xsimd_traits.hpp:15,
from /builddir/build/BUILD/xsimd-7.2.3/include/xsimd/xsimd.hpp:14,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_basic_test.hpp:17,
from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_basic_test.cpp:16:
/builddir/build/BUILD/xsimd-7.2.3/include/xsimd/types/xsimd_types_include.hpp:74:4: warning: #warning "Please compile with SIMD instructions enabled or activate the fallback mode. (e.g. for x86 -march=native or for ARM -mfpu=neon)" [-Wcpp]
74 | #warning "Please compile with SIMD instructions enabled or activate the fallback mode. (e.g. for x86 -march=native or for ARM -mfpu=neon)"
| ^~~~~~~
In file included from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_basic_test.cpp:16:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_basic_test.hpp: In function 'bool xsimd::test_char_loading(int8_t, S&)':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_basic_test.hpp:1056:33: warning: requested alignment 64 is larger than 8 [-Wattributes]
1056 | alignas(64) char algn[64];
| ^
In file included from /builddir/build/BUILD/xsimd-7.2.3/test/xsimd_basic_test.cpp:17:
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_complex_basic_test.hpp: In function 'bool xsimd::test_complex_simd_load_store(std::ostream&, T&)':
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_complex_basic_test.hpp:643:15: warning: typedef 'using real_batch_type = typename T::real_batch_type' locally defined but not used [-Wunused-local-typedefs]
643 | using real_batch_type = typename T::real_batch_type;
| ^~~~~~~~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_complex_basic_test.hpp:644:15: warning: typedef 'using float_vector = typename T::float_vector' locally defined but not used [-Wunused-local-typedefs]
644 | using float_vector = typename T::float_vector;
| ^~~~~~~~~~~~
/builddir/build/BUILD/xsimd-7.2.3/test/xsimd_complex_basic_test.hpp:645:15: warning: typedef 'using double_vector = typename T::double_vector' locally defined but not used [-Wunused-local-typedefs]
645 | using double_vector = typename T::double_vector;
| ^~~~~~~~~~~~~
make[2]: *** [CMakeFiles/Makefile2:95: test/CMakeFiles/test_xsimd.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:134: test/CMakeFiles/xtest.dir/rule] Error 2
Note that there is "Please compile with SIMD instructions enabled or activate the fallback mode. (e.g. for x86 -march=native or for ARM -mfpu=neon)" yet I'm not sure exactly what to use on those architectures. Is there some arch detection here that needs to be adapted?
Thanks for help.