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)

Reply via email to