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

            Bug ID: 101158
           Summary: ICE in gimple_call_arg, at gimple.h:3247
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: ice-checking, 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-12.0.0-alpha20210620 snapshot
(g:69d80f0f2f0bb8a88cd82d8ab6c4b92cf8013ca1) ICEs when compiling the following
testcase w/ -march=armv8-a+sve -O1 -ftree-slp-vectorize -fwrapv:

subroutine sprpl5 (left)
  implicit none

  integer :: left
  integer :: avail1, avail2, delx1, delx2, i2, ic

  ic = left
  delx1 = ic / 2
  delx2 = delx1 + 1
  i2 = ic + delx2
  avail1 = i2
  avail2 = 1

  do delx1 = 1, 2
     ic = left + nint (real (left) / 2)
     if (ic .ge. avail1) avail1 = ic + 1

     i2 = ic + delx2
     if (i2 .le. avail2) avail2 = i2 + 1
  end do
end subroutine sprpl5

% aarch64-linux-gnu-gfortran-12.0.0 -march=armv8-a+sve -O1 -ftree-slp-vectorize
-fwrapv -c nlkl20vf.f90
during GIMPLE pass: slp
nlkl20vf.f90:1:17:

    1 | subroutine sprpl5 (left)
      |                 ^
internal compiler error: in gimple_call_arg, at gimple.h:3247
0x7cfe44 gimple_call_arg
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/gimple.h:3247
0x7d0f6a gimple_call_arg
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree.h:3540
0x7d0f6a vect_build_slp_tree_1
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:1139
0x1255f91 vect_build_slp_tree_2
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:1744
0x1255940 vect_build_slp_tree
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:1581
0x12561c9 vect_build_slp_tree_2
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:2235
0x1255940 vect_build_slp_tree
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:1581
0x125a2bd vect_build_slp_instance
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:3006
0x1260dd4 vect_analyze_slp(vec_info*, unsigned int)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:3368
0x1265f30 vect_slp_analyze_bb_1
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:5556
0x1265f30 vect_slp_region
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:5657
0x1265f30 vect_slp_bbs
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:5807
0x1267a5c vect_slp_function(function*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vect-slp.c:5893
0x126e9fa execute
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20210620/work/gcc-12-20210620/gcc/tree-vectorizer.c:1445

Reply via email to