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