<div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 10, 2026 at 12:37 PM Drew Parsons <<a href="mailto:dparsons@debian.org" target="_blank">dparsons@debian.org</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">Package: libxsimd-dev<br>
Version: 14.0.0-2<br>
Severity: serious<br>
Justification: debci<br>
X-Debbugs-Cc: <a href="mailto:debian-powerpc@lists.debian.org" target="_blank">debian-powerpc@lists.debian.org</a><br>
User: <a href="mailto:debian-powerpc@lists.debian.org" target="_blank">debian-powerpc@lists.debian.org</a><br>
Usertags: ppc64el<br>
Control: forwarded -1 <a href="https://github.com/xtensor-stack/xsimd/issues/1257" rel="noreferrer" target="_blank">https://github.com/xtensor-stack/xsimd/issues/1257</a><br>
Control: affects -1 src:llvm-toolchain-21<br>
<br>
xsimd 14.0.0 tests on ppc64el are passing with gcc 15 but failing with<br>
clang 21.<br>
<br>
If gcc is fine, is there a clang option we should apply,<br>
or should it be consider a bug in clang?<br>
<br>
<br>
2007s [  5%] Building CXX object CMakeFiles/test_xsimd.dir/test_api.cpp.o<br>
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<br>
2010s In file included from /tmp/autopkgtest-lxc.egz8qg2i/downtmp/build.Yvf/src/test/test_api.cpp:12:<br>
2010s In file included from /usr/include/xsimd/xsimd.hpp:63:<br>
2010s In file included from /usr/include/xsimd/memory/xsimd_aligned_allocator.hpp:27:<br>
2010s In file included from /usr/include/xsimd/memory/../config/xsimd_arch.hpp:19:<br>
2010s In file included from /usr/include/xsimd/memory/../config/../types/xsimd_all_registers.hpp:51:<br>
2010s /usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:67:61: error: cannot use 'long' with '__vector bool'<br>
2010s    67 |         XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned long, long);<br>
2010s       |                                                             ^<br>
2010s /usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:68:52: error: cannot use 'long' with '__vector bool'<br>
2010s    68 |         XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(long, long);<br>
2010s       |                                                    ^<br>
2010s /usr/include/xsimd/memory/../config/../types/xsimd_vsx_register.hpp:70:54: error: cannot use 'long' with '__vector bool'<br>
2010s    70 |         XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(double, long);<br>
2010s       |                                                      ^<br>
...<br>
1987s In file included from /usr/include/xsimd/xsimd.hpp:77:<br>
1987s In file included from /usr/include/xsimd/types/xsimd_batch.hpp:520:<br>
1987s In file included from /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136:<br>
1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:429:20: error: no matching function for call to 'vec_ld'<br>
1987s   429 |             return vec_ld(0, reinterpret_cast<const typename batch<T, A>::register_type*>(mem));<br>
...<br>
1987s In file included from /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136:<br>
1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:752:20: error: no matching function for call to 'vec_st'<br>
1987s   752 |             return vec_st(self.data, 0, reinterpret_cast<typename batch<T, A>::register_type*>(mem));<br>
...<br>
1987s In file included from /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136:<br>
1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:436:20: error: no matching function for call to 'vec_vsx_ld'<br>
1987s   436 |             return vec_vsx_ld(0, (typename batch<T, A>::register_type const*)mem);<br>
...<br>
1987s In file included from /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136:<br>
1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:335:24: error: call to 'vec_cmpeq' is ambiguous<br>
1987s   335 |             auto res = vec_cmpeq(self.data, other.data);<br>
...<br>
1987s In file included from /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136:<br>
1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:222:20: error: call to 'vec_splats' is ambiguous<br>
1987s   222 |             return vec_splats(val);<br>
...<br>
1987s In file included from /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136:<br>
1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:130:20: error: call to 'vec_and' is ambiguous<br>
1987s   130 |             return vec_and(self.data, other.data);<br>
...<br>
1987s In file included from /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136:<br>
1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:759:20: error: no matching function for call to 'vec_vsx_st'<br>
1987s   759 |             return vec_vsx_st(self.data, 0, reinterpret_cast<typename batch<T, A>::register_type*>(mem));<br>
...<br>
1987s In file included from /usr/include/xsimd/types/../arch/xsimd_isa.hpp:136:<br>
1987s /usr/include/xsimd/types/../arch/./xsimd_vsx.hpp:335:24: error: call to 'vec_cmpeq' is ambiguous<br>
1987s   335 |             auto res = vec_cmpeq(self.data, other.data);<br>
...<br>
1988s 19 errors generated.</blockquote><div><br></div><div>If I recall correctly... VSX extensions, like vec_vsx_st, were optional in POWER7 and part of POWER8.</div><div><br></div><div>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`.</div><div><br></div><div>Someone like David Edelsohn (<<a href="mailto:dje.gcc@gmail.com">dje.gcc@gmail.com</a>>) could probably say more about the VSX unit and what flags it requires.</div><div><br></div><div>Jeff</div></div></div>
</div>