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

            Bug ID: 99825
           Summary: ICE in vect_build_combine_node
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: aarch64-linux-gnu

gfortran-11.0.1-alpha20210328 snapshot
(g:499fa254ae8c9752d8c2cf3130b13ffddfd83546) ICEs when compiling the following
testcase, reduced from gcc/testsuite/gfortran.dg/inline_matmul_11.f90, w/
-march=armv8.3-a -O3:

program main
  complex, dimension(3, 2) :: a
  complex, dimension(2, 4) :: b
  complex, dimension(3, 4) :: c, res1

  data a /0, (-5., -7.), (11., -13.), 0, 0, 0/
  data b /0, 0, 0, 0, 0, 0, 0, 0/
  data res1 /0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/

  c = matmul(a, conjg(b))
  if (any(res1 /= c)) stop 2
end program main

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

   12 | end program main
      |                ^
internal compiler error: in quick_push, at vec.h:1021
0x7c477e vec<std::pair<unsigned int, unsigned int>, va_heap,
vl_embed>::quick_push(std::pair<unsigned int, unsigned int> const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/vec.h:1021
0x7c489a vec<std::pair<unsigned int, unsigned int>, va_heap,
vl_embed>::quick_push(std::pair<unsigned int, unsigned int> const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-slp-patterns.c:907
0x7c489a vec<std::pair<unsigned int, unsigned int>, va_heap,
vl_ptr>::quick_push(std::pair<unsigned int, unsigned int> const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/vec.h:1875
0x7c489a vect_build_combine_node
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-slp-patterns.c:891
0x123f945 complex_mul_pattern::build(vec_info*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-slp-patterns.c:1068
0x1232418 vect_match_slp_patterns_2
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-slp.c:2430
0x12323c4 vect_match_slp_patterns_2
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-slp.c:2422
0x12323c4 vect_match_slp_patterns_2
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-slp.c:2422
0x12366b7 vect_match_slp_patterns
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-slp.c:2458
0x12366b7 vect_analyze_slp(vec_info*, unsigned int)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-slp.c:2901
0x1213157 vect_analyze_loop_2
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-loop.c:2316
0x1214eb3 vect_analyze_loop(loop*, vec_info_shared*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vect-loop.c:2985
0x1245aa7 try_vectorize_loop_1
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vectorizer.c:1009
0x1246540 vectorize_loops()
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree-vectorizer.c:1243

Reply via email to