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