#1127626 libxsimd-dev: clang errors on ppc64el

Package:
libxsimd-dev
Source:
libxsimd-dev
Description:
C++ wrappers for SIMD intrinsics
Submitter:
Drew Parsons
Date:
2026-05-03 21:03:01 UTC
Severity:
normal
#1127626#5
Date:
2026-02-10 17:35:18 UTC
From:
To:
Package: libxsimd-dev
Version: 14.0.0-2
Severity: serious
Justification: debci
X-Debbugs-Cc: debian-powerpc@lists.debian.org
User: debian-powerpc@lists.debian.org
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.



Reported upstream,
https://github.com/xtensor-stack/xsimd/issues/1257

#1127626#14
Date:
2026-02-10 17:56:06 UTC
From:
To:

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 (<dje.gcc@gmail.com>) could probably say more
about the VSX unit and what flags it requires.

Jeff

#1127626#19
Date:
2026-02-10 17:56:06 UTC
From:
To:

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 (<dje.gcc@gmail.com>) could probably say more
about the VSX unit and what flags it requires.

Jeff

#1127626#24
Date:
2026-02-10 18:29:50 UTC
From:
To:
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));

#1127626#29
Date:
2026-02-10 18:50:33 UTC
From:
To:
My bad, Drew.  I did not look closely at the compile error.

Sorry about the extra noise.

Jeff

#1127626#34
Date:
2026-02-17 15:31:24 UTC
From:
To:
I've worked around the issue by skipping clang tests on ppc64el,
so lowering severity.

The problem should still be fixed not ignored though.

#1127626#41
Date:
2026-05-03 21:00:50 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
xsimd, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1127626@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Drew Parsons <dparsons@debian.org> (supplier of updated xsimd package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sun, 03 May 2026 18:07:11 +0200
Source: xsimd
Architecture: source
Version: 14.2.0-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Changed-By: Drew Parsons <dparsons@debian.org>
Closes: 1127626
Changes:
 xsimd (14.2.0-1) unstable; urgency=medium
 .
   * Team upload.
   * New upstream release
     - applies debian patch fix_arm64_PR1241.patch
   * update debian patch clang_ppc64el.patch to upstream PR#1337.
     Fixes clang handling of vsx on ppc64el.
     debian/tests: reenable clang tests on ppc64el.
     Closes: #1127626
   * debian patch support_xtl_standards.patch hardcodes the required
     CXX standard to match the one (cxx_std_17) required by xtl for
     complex number support. Otherwise there is a breaking discrepancy
     with the default standard (cxx_std_14) and the installed xsimd
     cmake config files if an application does not explicitly request
     -DENABLE_XTL_COMPLEX=On. In particular required in
     tests/CMakeFiles.txt. See Bug#1135592 (upstream issue#1338)
Checksums-Sha1:
 2d8f31020663f9f7a1b3fdd73d561d51a401082b 2228 xsimd_14.2.0-1.dsc
 c1d848aec6369c5986725b8b69d3928825b00868 340148 xsimd_14.2.0.orig.tar.gz
 56a4c3c30674958b7a25e42cf03a9f906dc98d61 8604 xsimd_14.2.0-1.debian.tar.xz
 12ae7a634e9eff5b3c5614270e3073c653d1cac9 10658 xsimd_14.2.0-1_amd64.buildinfo
Checksums-Sha256:
 a9cd84bec4d9a1900001522d409d2eb45a115fc415a8509eb94ef78bbb0cdb24 2228 xsimd_14.2.0-1.dsc
 597b1d679d7d6e37aeb6379120d896c54549297af1627e4c8da808b85c84af01 340148 xsimd_14.2.0.orig.tar.gz
 9fdd7297937cb56eb02625b6bfb0665c0fe009ab71096c342e2272cf3f2ec10d 8604 xsimd_14.2.0-1.debian.tar.xz
 e75dfdb52d5cd50c7eece3784827407baa6acae58eac2ae67ca937b0e065204c 10658 xsimd_14.2.0-1_amd64.buildinfo
Files:
 89b561f0980ee6fb9af8d0ecea1a81c4 2228 science optional xsimd_14.2.0-1.dsc
 797331d7de271a638a0bb32f659d2700 340148 science optional xsimd_14.2.0.orig.tar.gz
 213d22faf8b9e01a3c507ad7b7c723aa 8604 science optional xsimd_14.2.0-1.debian.tar.xz
 15e956c0aa1e35bc7b2a1715d7fd5b22 10658 science optional xsimd_14.2.0-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEI8mpPlhYGekSbQo2Vz7x5L1aAfoFAmn3qdQACgkQVz7x5L1a
AfohSg/+J2v7f6C9S95rZ67F40FSPDP/pDKAjnw00j6tiNkIqW+hTrIiRI90/pDn
2g/U9Tbk8mNQP2+wtue9r6XXNK/hkee45vW9rUiMBu/Ly2DNNdO7TgNvmPUS8ufH
Jz1wmVLoLVGkq/bb1P+YU5euNg5xuL1hqThVOhUlHe2oSwwRuJJ9/B1vNX4npFZj
UOxzXh6uRGAAaa94ZQuGlAwU+1bGjwOd7gT49EjSVoojm0v/bwxiL08tyn/R1++9
FTNDssASHzbGsjASHEy1RynWpoiqoXD0EOAMho3GjNrs0RuLArgmxpfkeonoLyiq
/QQ+QdHo1TEfCOScGsNKtkwLC7wqv+EZr8tD3ASKrzvbk97r/dNEKQT6BtTKes1z
hU2kjMQkhzDri05CgFZK1vUYE8Y8IeT9S64Incyjsf0FtZLJm0wrMqh5Sqg1d2IN
P5a/s3NXR8A3EDiuhB4tI66DJ0CaUvGxIqUkQZm2emajwwl9mlK2DvxkfcQ9stSN
RJxcIL64UADbuQaKYMFlnbDhusJCIpnnXvTcCJv1X1u2XLa4D5b+yrbUOzRW22rF
9eTamRUy8Q4BQIiy0NxxMXGZzOVcyvJpPKzGtMujvlYUNpM7U9+QRAcI7qAgO3+H
Y0TjroA0Hv7+qDbTr6UE8MeKjD9eLnHu0AazsliTQMOinPAOgeo=
=Hxta
-----END PGP SIGNATURE-----