google / google/highway

Failed test HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 with gcc 15.1.1

Open
#2,627 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
5.8k
Forks
471
Avg merge
1d 6h
Merged PRs (30d)
81

Description

Hello,

there is failed test reported by a Gentoo maintainer:
https://bugs.gentoo.org/960397

All test passed with gcc 14.3.0, but after upgrading gcc to version 15.1.1_p20250705-r1, there is a failed test:

highway 1.2.0:

```
775/1661 Test: HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 # GetParam() = 2305843009213693952
Command: "/var/tmp/portage/dev-cpp/highway-1.2.0/work/highway-1.2.0_build-abi_x86_64.amd64/tests/interleaved_test" "--gtest_filter=HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128" "--gtest_also_run_disabled_tests"
Directory: /var/tmp/portage/dev-cpp/highway-1.2.0/work/highway-1.2.0_build-abi_x86_64.amd64
"HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 # GetParam() = 2305843009213693952" start time: Jul 20 10:16 CEST
Output:
----------------------------------------------------------
Running main() from /var/tmp/portage/dev-cpp/gtest-1.14.0-r2/work/googletest-1.14.0/googletest/src/gtest_main.cc
Note: Google Test filter = HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from HwyInterleavedTestGroup/HwyInterleavedTest
[ RUN ] HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128

u64x2 expect [0+ ->]:
0x0000000000000027,0x0000000000000038,
u64x2 actual [0+ ->]:
0x0000003800000004,0x0000000000000038,
Abort at interleaved_test.cc:148: EMU128, u64x2 lane 0 mismatch: expected '0x0000000000000027', got '0x0000003800000004'.

Test time = 0.01 sec
----------------------------------------------------------
Test Failed.
"HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 # GetParam() = 2305843009213693952" end time: Jul 20 10:16 CEST
"HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 # GetParam() = 2305843009213693952" time elapsed: 00:00:00
----------------------------------------------------------
```

highway from git:

```
852/1969 Test: HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 # GetParam() = 2305843009213693952
Command: "/var/tmp/portage/dev-cpp/highway-9999/work/highway-9999_build-abi_x86_64.amd64/tests/interleaved_test" "--gtest_filter=HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128" "--gtest_also_run_disabled_tests"
Directory: /var/tmp/portage/dev-cpp/highway-9999/work/highway-9999_build-abi_x86_64.amd64
"HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 # GetParam() = 2305843009213693952" start time: Jul 20 11:02 CEST
Output:
----------------------------------------------------------
Running main() from /var/tmp/portage/dev-cpp/gtest-1.14.0-r2/work/googletest-1.14.0/googletest/src/gtest_main.cc
Note: Google Test filter = HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from HwyInterleavedTestGroup/HwyInterleavedTest
[ RUN ] HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128

u64x2 expect [0+ ->]:
0x0000000000000027,0x0000000000000038,
u64x2 actual [0+ ->]:
0x0000003800000004,0x0000000000000038,
Abort at interleaved_test.cc:157: EMU128, u64x2 lane 0 mismatch: expected '0x0000000000000027', got '0x0000003800000004'.

Test time = 0.00 sec
----------------------------------------------------------
Test Failed.
"HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 # GetParam() = 2305843009213693952" end time: Jul 20 11:02 CEST
"HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 # GetParam() = 2305843009213693952" time elapsed: 00:00:00
----------------------------------------------------------
```

Contributor guide

Open the contributing guide

Research direction

Start with the failing HwyInterleavedTestGroup/HwyInterleavedTest.TestAllLoadStoreInterleaved4/EMU128 case in tests/interleaved_test.cc, around the reported assertion lines 148 or 157. Reproduce the filtered test with GCC 15.1.1 and compare it with GCC 14.3.0, then trace the interleaved load/store behavior involved. Done means the test passes correctly with the newer compiler without weakening the assertion.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.