https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127040
Bug ID: 127040
Summary: [17 Regression] ICE (segmentation fault) on wrf_r in
vectorizer since r17-3408-gcd962857ea3d8d
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, needs-reduction
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: pheeck at gcc dot gnu.org
CC: rguenth at gcc dot gnu.org
Blocks: 26163
Target Milestone: ---
Host: aarch64-gnu-linux
Target: aarch64-gnu-linux
When I build the 521.wrf_r SPEC CPU 2017 benchmark using -Ofast -march=native
-flto on a Neoverse V2 machine, I see an ICE
during GIMPLE pass: vect
c1f4kb.fppized.f90: In function 'c1f4kb':
c1f4kb.fppized.f90:1:1: internal compiler error: Segmentation fault
1 | subroutine c1f4kb ( ido, l1, na, cc, in1, ch, in2, wa )
| ^
0x1eeb173 internal_error(char const*, ...)
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/diagnostic-global-context.cc:787
0xdcae13 crash_signal
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/toplev.cc:325
0x10bb0e8 complex_pattern::build(vec_info*)
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp-patterns.cc:537
0x10ab217 vect_match_slp_patterns_2
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp.cc:3907
0x10ab1b3 vect_match_slp_patterns_2
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp.cc:3897
0x10ab1b3 vect_match_slp_patterns_2
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp.cc:3897
0x10ab1b3 vect_match_slp_patterns_2
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp.cc:3897
0x10ab1b3 vect_match_slp_patterns_2
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp.cc:3897
0x10ab1b3 vect_match_slp_patterns_2
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp.cc:3897
0x10ab1b3 vect_match_slp_patterns_2
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp.cc:3897
0x10af5ef vect_match_slp_patterns
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp.cc:3936
0x10af5ef vect_analyze_slp(vec_info*, unsigned int, bool)
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-slp.cc:5998
0x107511b vect_analyze_loop_2
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-loop.cc:2288
0x1076867 vect_analyze_loop_1
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-loop.cc:2821
0x107701b vect_analyze_loop(loop*, gimple*, vec_info_shared*)
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vect-loop.cc:3002
0x10c384b try_vectorize_loop_1
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vectorizer.cc:1099
0x10c384b try_vectorize_loop
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vectorizer.cc:1218
0x10c3d83 execute
/home/gcc/buildworker/lnt-grace-gcc-trunk-workdays/build/gcc/tree-vectorizer.cc:1335
This happens during the linking. I've bisected this to
r17-3408-gcd962857ea3d8d
commit cd962857ea3d8db2e7ed08f98df4152e7739e8cd
Author: Richard Biener <[email protected]>
AuthorDate: Tue Aug 18 13:19:30 2026 +0200
Commit: Richard Biener <[email protected]>
CommitDate: Wed Aug 19 12:44:23 2026 +0200
avoid SLP_TREE_REPRESENTATIVE for permutes
The following consistently keeps SLP_TREE_REPRESENTATIVE cleared
for VEC_PERM_EXPR SLP nodes and verifies this.
* tree-vect-slp.cc (vect_slp_build_two_operator_nodes):
Set SLP_TREE_REPRESENTATIVE to NULL for the permute nodes.
(vect_build_slp_tree_2): Likewise.
(vect_build_slp_store_interleaving): Likewise.
(vect_lower_load_permutations): Likewise.
(vect_optimize_slp_pass::get_result_with_layout): Likewise.
(vect_cse_slp_node_parts): Deal with NULL SLP_TREE_REPRESENTATIVE
for VEC_PERM nodes.
(vect_slp_analyze_node_operations_1): Assert permute nodes
do not have SLP_TREE_REPRESENTATIVE set.
* tree-vect-slp-patterns.cc (complex_pattern::build): Adjust.
(vect_build_swap_evenodd_node): Do not set SLP_TREE_REPRESENTATIVE.
(vect_build_combine_node): Likewise.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163
[Bug 26163] [meta-bug] missed optimization in SPEC (2026, 2k17, 2k and 2k6 and
95)