On Tue, Feb 10, 2026 at 1:29 PM Drew Parsons <[email protected]> wrote:
> On 2026-02-10 18:56, Jeffrey Walton wrote: > > On Tue, Feb 10, 2026 at 12:37 PM Drew Parsons <[email protected]> > > wrote: > >> > >> xsimd 14.0.0 tests on ppc64el are passing with gcc 15 but failing > >> with > >> clang 21. > > > > 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. > > > That sounds plausible. But unfortunately it's not so simple as just > removing native > or adding -mcpu=power7 (or power8 or power9, the test machine is POWER9 > altivec supported) > > Each of the permutation gets the same set of errors, reproducing the > error from the command line: > > $ /usr/bin/clang++ -Wunused-parameter -Wextra -Wreorder > -Wshorten-64-to-32 -std=c++11 -g -fPIC -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 > /xsimd/xsimd-14.0.0/test/test_api.cpp 2>&1 | head -n 50 > In file included from /xsimd/xsimd-14.0.0/test/test_api.cpp:12: > In file included from /usr/include/xsimd/xsimd.hpp:63: > In file included from > /usr/include/xsimd/memory/xsimd_aligned_allocator.hpp:27: > In file included from > /usr/include/xsimd/memory/../config/xsimd_arch.hpp:19: > In file included from > /usr/include/xsimd/memory/../config/../types/xsimd_all_registers.hpp:51: > /usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:67:61: > error: cannot use 'long' with '__vector bool' > 67 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned long, > long); > | ^ > /usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:68:52: > error: cannot use 'long' with '__vector bool' > 68 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(long, long); > | ^ > /usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:70:54: > error: cannot use 'long' with '__vector bool' > 70 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(double, long); > | ^ > In file included from /xsimd/xsimd-14.0.0/test/test_api.cpp:12: > In file included from /usr/include/xsimd/xsimd.hpp:77: > In file included from /usr/include/xsimd/types/xsimd_batch.hpp:520: > In file included from > /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136: > /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:429:20: error: no > matching function for call to 'vec_ld' > 429 | return vec_ld(0, reinterpret_cast<const typename > batch<T, A>::register_type*>(mem)); > My bad, Drew. I did not look closely at the compile error. Sorry about the extra noise. Jeff

