#1145420 highway: testsuite failure on riscv64 hardware with vector extension

#1145420#5
Date:
2026-08-24 20:09:42 UTC
From:
To:
Dear maintainers,

Two of the riscv64 buildds (rv-manda-02 and rv-manda-04) recently got
their hardware upgraded to a CPU with vector extension ("V").

The upstream highway software defaults to using vector extension, but as
it is not included in the Debian baseline ISA, this is disabled through
the -DHWY_CMAKE_RVV:BOOL=OFF option. In order to still use vector
extension, runtime dispatch using the GCC target extension has been
backported from upstream master ("gcc-15.patch"). On the paper this
looks great.

Unfortunately, the testsuite now fails on hardware having the vector
extension:

| The following tests FAILED:
| 	355 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved2/RVV (Failed)
| 	357 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved3/RVV (Failed)
| 	359 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/RVV (Failed)
| 	647 - TupleTestGroup/TupleTest.TestAllCreate/RVV (Failed)
| 	696 - DotTestGroup/DotTest.TestAllDotF32BF16/RVV (Failed)
| Errors while running CTest

The full build log is available there:
https://buildd.debian.org/status/fetch.php?pkg=highway&arch=riscv64&ver=1.3.0-5.1&stamp=1786752450&raw=0

At this stage I haven't been able to fully fix the issue except by fully
disabling RVV support. Nevertheless I would like to share my initial
debugging attempts:

- Disabling "gcc-15.patch" fixes the issue.

- Building with -DHWY_CMAKE_RVV:BOOL=ON, instead on relying on runtime
  detection fixes 4 of the issues, but adds an extra one:
| 	126 - HwyBlockwiseTestGroup/HwyBlockwiseTest.TestAllZipLower/EMU128 (Failed)
| 	696 - DotTestGroup/DotTest.TestAllDotF32BF16/RVV (Failed)

- With the current upstream HEAD with -DHWY_CMAKE_RVV:BOOL=OFF (so with runtime
detection), I get:
| 	365 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved2/RVV (Failed)
| 	367 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved3/RVV (Failed)
| 	369 - HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/RVV (Failed)
| 	697 - TupleTestGroup/TupleTest.TestAllCreate/RVV (Failed)
| 	750 - MinMaxTestGroup/MinMaxTest.TestAllIndexOfExtremeInLongSpan/RVV (Failed)
| 	774 - DotTestGroup/DotTest.TestAllDotF32BF16/RVV (Failed)
| 	831 - IntDivTestGroup/IntDivTest.TestAllFloorDivision/RVV (Failed)

- With the current upstream HEAD with -DHWY_CMAKE_RVV:BOOL=ON, I get:
| 	750 - MinMaxTestGroup/MinMaxTest.TestAllIndexOfExtremeInLongSpan/RVV (Failed)
| 	774 - DotTestGroup/DotTest.TestAllDotF32BF16/RVV (Failed)
| 	831 - IntDivTestGroup/IntDivTest.TestAllFloorDivision/RVV (Failed)

I have been able to reproduce the issue on a SpacemiT K1 CPU (like the
buildds), a SpacemiT K3 CPU and using QEMU, so I think we can rule out a
CPU bug.

Regards
Aurelien