https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103864

            Bug ID: 103864
           Summary: [11/12 Regression] ICE in vect_transform_reduction, at
                    tree-vect-loop.c:7389
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: aarch64-linux-gnu

gcc 12.0.0 20211226 (g:d87483015d476a95f521f0c9dcf6988ca889063b) ICEs when
compiling the following testcase, reduced from
gcc/testsuite/gcc.dg/vect/pr103544.c, w/ -O3 -fno-tree-reassoc:

void
crash_me (short int *crash_me_result, int i, char crash_me_ptr_0)
{
  while (i < 1)
    {
      int j;

      for (j = 0; j < 2; ++j)
        crash_me_result[j] += crash_me_ptr_0 + 1;

      i += 3;
    }
}

% aarch64-linux-gnu-gcc-12.0.0 -O3 -fno-tree-reassoc -c iyhuldkz.c
during GIMPLE pass: vect
iyhuldkz.c: In function 'crash_me':
iyhuldkz.c:2:1: internal compiler error: in vect_transform_reduction, at
tree-vect-loop.c:7389
    2 | crash_me (short int *crash_me_result, int i, char crash_me_ptr_0)
      | ^~~~~~~~
0x7b8353 vect_transform_reduction(_loop_vec_info*, _stmt_vec_info*,
gimple_stmt_iterator*, gimple**, _slp_tree*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-loop.c:7389
0x1bf70c0 vect_transform_stmt(vec_info*, _stmt_vec_info*,
gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-stmts.c:11255
0x1193427 vect_schedule_slp_node
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-slp.c:7270
0x11a53ac vect_schedule_scc
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-slp.c:7514
0x11a6417 vect_schedule_slp(vec_info*, vec<_slp_instance*, va_heap, vl_ptr>
const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-slp.c:7579
0x117fa10 vect_transform_loop(_loop_vec_info*, gimple*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-loop.c:9625
0x11b273f vect_transform_loops
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vectorizer.c:1003
0x11b273f try_vectorize_loop_1
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vectorizer.c:1133
0x11b273f try_vectorize_loop
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vectorizer.c:1162
0x11b2f84 execute
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vectorizer.c:1278

Reply via email to