https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124113
Bug ID: 124113
Summary: [16 Regression] 6% slowdown of sphinx3 on Zen5 since
r16-7359-gae04c1afd1526a
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: jmelcr at gcc dot gnu.org
CC: ncm at gcc dot gnu.org
Blocks: 26163
Target Milestone: ---
Host: x86_64-suse-linux
Target: x86_64-suse-linux
As seen here
https://lnt.opensuse.org/db_default/v4/SPEC/graph?plot.0=1242.280.0
there was a 6% exec time slowdown of the sphinx3 SPEC 2006
benchmark when compiled with -O2 -march=native -g on an Zen 5
machine. I bisected it to r16-7359-gae04c1afd1526a.
ae04c1afd1526a6d468777809c50a9d02816ded9 is the first bad commit
commit ae04c1afd1526a6d468777809c50a9d02816ded9
Author: Nathan Myers <[email protected]>
Date: Fri Feb 6 03:56:42 2026 -0500
libstdc++: fix C++17 regression in concept __heterogeneous_key (2nd)
The commit 3f7905550483408a2c4c5096a1adc8d7e863eb12 defined a
concept __heterogeneous_key using a name not defined in C++17.
This is fixed by guarding the definition behind a name defined
in C++23 the earliest Standard that uses the definition.
https://gcc.gnu.org/pipermail/gcc-patches/2026-February/707814.html
libstdc++-v3/ChangeLog
* include/bits/stl_function.h (concept __heterogeneous_key):
Guard with __glibcxx_associative_heterogeneous_erasure
libstdc++-v3/include/bits/stl_function.h | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
bisect found first bad commit
This is a regression against GCC 15. See the comparison
here:
https://lnt.opensuse.org/db_default/v4/SPEC/graph?plot.0=1257.280.0&plot.1=1320.280.0&plot.2=1293.280.0&plot.3=1348.280.0&plot.4=1242.280.0&
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163
[Bug 26163] [meta-bug] missed optimization in SPEC (2k17, 2k and 2k6 and 95)