On Tue, Feb 10, 2026 at 12:37 PM Drew Parsons <[email protected]> wrote:
> Package: libxsimd-dev > Version: 14.0.0-2 > Severity: serious > Justification: debci > X-Debbugs-Cc: [email protected] > User: [email protected] > Usertags: ppc64el > Control: forwarded -1 https://github.com/xtensor-stack/xsimd/issues/1257 > Control: affects -1 src:llvm-toolchain-21 > > xsimd 14.0.0 tests on ppc64el are passing with gcc 15 but failing with > clang 21. > > If gcc is fine, is there a clang option we should apply, > or should it be consider a bug in clang? > > > 2007s [ 5%] Building CXX object CMakeFiles/test_xsimd.dir/test_api.cpp.o > 2007s /usr/bin/clang++ -DXSIMD_ENABLE_XTL_COMPLEX=1 -Wunused-parameter > -Wextra -Wreorder -Wshorten-64-to-32 -std=c++17 -g -fPIC -mcpu=native > -mtune=native -O3 -DNDEBUG -MD -MT CMakeFiles/test_xsimd.dir/test_api.cpp.o > -MF CMakeFiles/test_xsimd.dir/test_api.cpp.o.d -o > CMakeFiles/test_xsimd.dir/test_api.cpp.o -c > /tmp/autopkgtest-lxc.egz8qg2i/downtmp/build.Yvf/src/test/test_api.cpp > 2010s In file included from > /tmp/autopkgtest-lxc.egz8qg2i/downtmp/build.Yvf/src/test/test_api.cpp:12: > 2010s In file included from /usr/include/xsimd/xsimd.hpp:63: > 2010s In file included from > /usr/include/xsimd/memory/xsimd_aligned_allocator.hpp:27: > 2010s In file included from > /usr/include/xsimd/memory/../config/xsimd_arch.hpp:19: > 2010s In file included from > /usr/include/xsimd/memory/../config/../types/xsimd_all_registers.hpp:51: > 2010s > /usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:67:61: > error: cannot use 'long' with '__vector bool' > 2010s 67 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned long, > long); > 2010s | ^ > 2010s > /usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:68:52: > error: cannot use 'long' with '__vector bool' > 2010s 68 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(long, long); > 2010s | ^ > 2010s > /usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:70:54: > error: cannot use 'long' with '__vector bool' > 2010s 70 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(double, long); > 2010s | ^ > ... > 1987s In file included from /usr/include/xsimd/xsimd.hpp:77: > 1987s In file included from /usr/include/xsimd/types/xsimd_batch.hpp:520: > 1987s In file included from > /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136: > 1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:429:20: error: no > matching function for call to 'vec_ld' > 1987s 429 | return vec_ld(0, reinterpret_cast<const typename > batch<T, A>::register_type*>(mem)); > ... > 1987s In file included from > /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136: > 1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:752:20: error: no > matching function for call to 'vec_st' > 1987s 752 | return vec_st(self.data, 0, > reinterpret_cast<typename batch<T, A>::register_type*>(mem)); > ... > 1987s In file included from > /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136: > 1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:436:20: error: no > matching function for call to 'vec_vsx_ld' > 1987s 436 | return vec_vsx_ld(0, (typename batch<T, > A>::register_type const*)mem); > ... > 1987s In file included from > /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136: > 1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:335:24: error: call > to 'vec_cmpeq' is ambiguous > 1987s 335 | auto res = vec_cmpeq(self.data, other.data); > ... > 1987s In file included from > /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136: > 1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:222:20: error: call > to 'vec_splats' is ambiguous > 1987s 222 | return vec_splats(val); > ... > 1987s In file included from > /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136: > 1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:130:20: error: call > to 'vec_and' is ambiguous > 1987s 130 | return vec_and(self.data, other.data); > ... > 1987s In file included from > /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136: > 1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:759:20: error: no > matching function for call to 'vec_vsx_st' > 1987s 759 | return vec_vsx_st(self.data, 0, > reinterpret_cast<typename batch<T, A>::register_type*>(mem)); > ... > 1987s In file included from > /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136: > 1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:335:24: error: call > to 'vec_cmpeq' is ambiguous > 1987s 335 | auto res = vec_cmpeq(self.data, other.data); > ... > 1988s 19 errors generated. If I recall correctly... VSX extensions, like vec_vsx_st, were optional in POWER7 and part of POWER8. My guess is, the problem is `-mcpu=native` while building on a downlevel machine. Instead, the CFLAGS and CXXFLAGS should include `-mcpu=power7 -mvsx` or `-mcpu=power8`. Someone like David Edelsohn (<[email protected]>) could probably say more about the VSX unit and what flags it requires. Jeff

