Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

riscv64, s390x error: ‘aligned_mode’ in namespace ‘xsimd’ does not name a type; did you mean ‘aligned_free’? #954

Open
drew-parsons opened this issue Oct 11, 2023 · 3 comments
Assignees

Comments

@drew-parsons
Copy link

drew-parsons commented Oct 11, 2023

xtensor 0.24.7 tests are exposing an error in xsimd 10.0.0 on less common architectures ppc64el and s390x, seen in debian CI tests at https://ci.debian.net/packages/x/xtensor/

Test logs
https://ci.debian.net/data/autopkgtest/unstable/riscv64/x/xtensor/38875117/log.gz
https://ci.debian.net/data/autopkgtest/unstable/s390x/x/xtensor/38875118/log.gz

The same xtensor code is passing on other architectures (arm has other problems), so I guess the problem is in the definitions included via xsimd/xsimd.hpp when xtensor is used with use XTENSOR_USE_XSIMD on these architectures.

The error message on riscv64 is

217s /usr/bin/g++ -DXSIMD_ENABLE_XTL_COMPLEX -DXTENSOR_USE_XSIMD  -DXSIMD_ENABLE_XTL_COMPLEX=1 -std=c++14 -Wunused-parameter -Wextra -Wreorder -Wconversion -Wno-sign-conversion  -Wold-style-cast -Wunused-variable -ftemplate-backtrace-limit=0 -O3 -DNDEBUG -MD -MT CMakeFiles/test_xtensor_lib.dir/test_xarray.cpp.o -MF CMakeFiles/test_xtensor_lib.dir/test_xarray.cpp.o.d -o CMakeFiles/test_xtensor_lib.dir/test_xarray.cpp.o -c /tmp/autopkgtest-lxc.w6l32789/downtmp/autopkgtest_tmp/test_xarray.cpp
223s In file included from /usr/include/xtensor/xstorage.hpp:23,
223s                  from /usr/include/xtensor/xshape.hpp:23,
223s                  from /usr/include/xtensor/xstrides.hpp:21,
223s                  from /usr/include/xtensor/xaccessible.hpp:14,
223s                  from /usr/include/xtensor/xbroadcast.hpp:23,
223s                  from /usr/include/xtensor/xbuilder.hpp:29,
223s                  from /usr/include/xtensor/xmanipulation.hpp:19,
223s                  from /tmp/autopkgtest-lxc.w6l32789/downtmp/autopkgtest_tmp/test_common.hpp:16,
223s                  from /tmp/autopkgtest-lxc.w6l32789/downtmp/autopkgtest_tmp/test_xadaptor_semantic.cpp:10:
223s /usr/include/xtensor/xtensor_simd.hpp:37:33: error: ‘aligned_mode’ in namespace ‘xsimd’ does not name a type; did you mean ‘aligned_free’?
223s    37 |     using aligned_mode = xsimd::aligned_mode;
223s       |                                 ^~~~~~~~~~~~
223s       |                                 aligned_free
223s /usr/include/xtensor/xtensor_simd.hpp:38:35: error: ‘unaligned_mode’ in namespace ‘xsimd’ does not name a type; did you mean ‘aligned_free’?
223s    38 |     using unaligned_mode = xsimd::unaligned_mode;
223s       |                                   ^~~~~~~~~~~~~~
223s       |                                   aligned_free
223s /usr/include/xtensor/xtensor_simd.hpp:41:40: error: ‘allocator_alignment’ in namespace ‘xsimd’ does not name a template type
223s    41 |     using allocator_alignment = xsimd::allocator_alignment<A>;
223s       |                                        ^~~~~~~~~~~~~~~~~~~
223s /usr/include/xtensor/xtensor_simd.hpp:44:42: error: ‘allocator_alignment_t’ in namespace ‘xsimd’ does not name a template type
223s    44 |     using allocator_alignment_t = xsimd::allocator_alignment_t<A>;
223s       |                                          ^~~~~~~~~~~~~~~~~~~~~
223s /usr/include/xtensor/xtensor_simd.hpp:47:40: error: ‘container_alignment’ in namespace ‘xsimd’ does not name a template type
223s    47 |     using container_alignment = xsimd::container_alignment<C>;
223s       |                                        ^~~~~~~~~~~~~~~~~~~
223s /usr/include/xtensor/xtensor_simd.hpp:50:42: error: ‘container_alignment_t’ in namespace ‘xsimd’ does not name a template type
223s    50 |     using container_alignment_t = xsimd::container_alignment_t<C>;
223s       |                                          ^~~~~~~~~~~~~~~~~~~~~
223s /usr/include/xtensor/xtensor_simd.hpp:53:32: error: ‘simd_traits’ in namespace ‘xsimd’ does not name a template type
223s    53 |     using simd_traits = xsimd::simd_traits<T>;
223s       |                                ^~~~~~~~~~~
223s /usr/include/xtensor/xtensor_simd.hpp:56:39: error: ‘revert_simd_traits’ in namespace ‘xsimd’ does not name a template type
223s    56 |     using revert_simd_traits = xsimd::revert_simd_traits<T>;
223s       |                                       ^~~~~~~~~~~~~~~~~~
223s /usr/include/xtensor/xtensor_simd.hpp:59:30: error: ‘simd_type’ in namespace ‘xsimd’ does not name a template type
&c
@serge-sans-paille
Copy link
Contributor

looks like an issue that happens when XSIMD_NO_SUPPORTED_ARCHITECTURE is defined... cc @JohanMabille

@JohanMabille JohanMabille self-assigned this Oct 12, 2023
@drew-parsons
Copy link
Author

drew-parsons commented Oct 12, 2023

armel is also affected, https://ci.debian.net/data/autopkgtest/testing/armel/x/xtensor/38908134/log.gz
Sounds like XSIMD_NO_SUPPORTED_ARCHITECTURE, as you said.

edit: and ppc64el: https://ci.debian.net/data/autopkgtest/unstable/ppc64el/x/xtensor/38949306/log.gz

@JohanMabille
Copy link
Member

Indeed, we are missing a bunch of definitions with XSIMD_NO_SUPPORTED_ARCHITECTURE. I am working on a fix, but this is not trivial.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants