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

            Bug ID: 99721
           Summary: ICE: Segmentation fault (in vect_schedule_slp_node)
           Product: gcc
           Version: 11.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

gfortran-11.0.1-alpha20210321 snapshot
(g:fc24ea2374259d401a46ce3526688b7e79d4cc13) ICEs when compiling the following
testcase, reduced from gcc/testsuite/gfortran.dg/matmul_blas_1.f, w/
-march=armv8.3-a -O3:

subroutine sub_c
  implicit none
  complex, dimension(3,2) :: a
  complex, dimension(2,3) :: at
  complex, dimension(2,4) :: b
  complex, dimension(3,4) :: c
  complex, dimension(3,4) :: cres

  data a / (2.,-3.), (-5.,7.), (11.,-13.), (17.,19), (-23., -29), (-31., 37.)/

  data b / (-41., 43.), (-47., 53.), (-59.,-61.), (-67., 71), ( 73.,79. ), &
       (83.,-89.), (97.,-101.), (-107.,-109.)/
  data cres /(-1759.,217.), (2522.,-358.), (-396.,-2376.), (-2789.,-11.), &
       (4322.,202.), (-1992.,-4584.), (3485.,3.), (-5408.,-244.), &
       (2550.,5750.), (143.,-4379.), (-478.,6794.), (7104.,-2952.) /

  at = transpose(a)
  c = matmul(transpose(at), b)
  if (any (c /= cres)) stop 4

end subroutine sub_c

% aarch64-linux-gnu-gfortran-11.0.1 -march=armv8.3-a -O3 -c njsbve82.f90
during GIMPLE pass: vect
njsbve82.f90:1:16:

    1 | subroutine sub_c
      |                ^
internal compiler error: Segmentation fault
0xf632e6 crash_signal
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/toplev.c:327
0x122b120 vect_schedule_slp_node
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vect-slp.c:6150
0x1238e2c vect_schedule_scc
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vect-slp.c:6342
0x1238b9f vect_schedule_scc
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vect-slp.c:6323
0x1238b9f vect_schedule_scc
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vect-slp.c:6323
0x1238b9f vect_schedule_scc
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vect-slp.c:6323
0x1238b9f vect_schedule_scc
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vect-slp.c:6323
0x123948f vect_schedule_slp(vec_info*, vec<_slp_instance*, va_heap, vl_ptr>)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vect-slp.c:6458
0x121640c vect_transform_loop(_loop_vec_info*, gimple*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vect-loop.c:9535
0x1244daf try_vectorize_loop_1
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vectorizer.c:1104
0x1245b50 vectorize_loops()
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/tree-vectorizer.c:1243

Reply via email to