<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Feb 10, 2026 at 1:29 PM Drew Parsons <<a href="mailto:dparsons@emerall.com">dparsons@emerall.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2026-02-10 18:56, Jeffrey Walton wrote:<br>
> On Tue, Feb 10, 2026 at 12:37 PM Drew Parsons <<a href="mailto:dparsons@debian.org" target="_blank">dparsons@debian.org</a>><br>
> wrote:<br>
>> <br>
>> xsimd 14.0.0 tests on ppc64el are passing with gcc 15 but failing<br>
>> with<br>
>> clang 21.<br>
> <br>
> If I recall correctly... VSX extensions, like vec_vsx_st, were<br>
> optional in POWER7 and part of POWER8.<br>
> <br>
> My guess is, the problem is `-mcpu=native` while building on a<br>
> downlevel machine. Instead, the CFLAGS and CXXFLAGS should include<br>
> `-mcpu=power7 -mvsx` or `-mcpu=power8`.<br>
> <br>
> Someone like David Edelsohn (<<a href="mailto:dje.gcc@gmail.com" target="_blank">dje.gcc@gmail.com</a>>) could probably say<br>
> more about the VSX unit and what flags it requires.<br>
<br>
<br>
That sounds plausible. But unfortunately it's not so simple as just <br>
removing native<br>
or adding -mcpu=power7 (or power8 or power9, the test machine is POWER9 <br>
altivec supported)<br>
<br>
Each of the permutation gets the same set of errors, reproducing the <br>
error from the command line:<br>
<br>
$ /usr/bin/clang++ -Wunused-parameter -Wextra -Wreorder <br>
-Wshorten-64-to-32 -std=c++11 -g -fPIC -O3 -DNDEBUG -MD -MT <br>
CMakeFiles/test_xsimd.dir/test_api.cpp.o -MF <br>
CMakeFiles/test_xsimd.dir/test_api.cpp.o.d -o <br>
CMakeFiles/test_xsimd.dir/test_api.cpp.o -c <br>
/xsimd/xsimd-14.0.0/test/test_api.cpp 2>&1 | head -n 50<br>
In file included from /xsimd/xsimd-14.0.0/test/test_api.cpp:12:<br>
In file included from /usr/include/xsimd/xsimd.hpp:63:<br>
In file included from <br>
/usr/include/xsimd/memory/xsimd_aligned_allocator.hpp:27:<br>
In file included from <br>
/usr/include/xsimd/memory/../config/xsimd_arch.hpp:19:<br>
In file included from <br>
/usr/include/xsimd/memory/../config/../types/xsimd_all_registers.hpp:51:<br>
/usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:67:61: <br>
error: cannot use 'long' with '__vector bool'<br>
67 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned long, <br>
long);<br>
| ^<br>
/usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:68:52: <br>
error: cannot use 'long' with '__vector bool'<br>
68 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(long, long);<br>
| ^<br>
/usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:70:54: <br>
error: cannot use 'long' with '__vector bool'<br>
70 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(double, long);<br>
| ^<br>
In file included from /xsimd/xsimd-14.0.0/test/test_api.cpp:12:<br>
In file included from /usr/include/xsimd/xsimd.hpp:77:<br>
In file included from /usr/include/xsimd/types/xsimd_batch.hpp:520:<br>
In file included from <br>
/usr/include/xsimd/types/../arch/xsimd_isa.hpp:136:<br>
/usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:429:20: error: no <br>
matching function for call to 'vec_ld'<br>
429 | return vec_ld(0, reinterpret_cast<const typename <br>
batch<T, A>::register_type*>(mem));<br></blockquote><div><br></div><div>My bad, Drew. I did not look closely at the compile error.</div><div><br></div><div>Sorry about the extra noise.</div><div><br></div><div>Jeff </div></div></div>