https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92537
Bug ID: 92537 Summary: [10 Regression] internal compiler error: in vect_slp_analyze_node_operations, at tree-vect-slp.c:2775 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: anlauf at gcc dot gnu.org Target Milestone: --- This is a recent regression occurring with Fortran code. If it is a FE issue, feel free to re-categorize. The two modules below need to be compiled separately and with options -O2 -march=skylake -ftree-vectorize (or for any other modern x86_64 processor), to get: during GIMPLE pass: slp mod2.f90:5:0: 5 | subroutine foo (pr) | internal compiler error: in vect_slp_analyze_node_operations, at tree-vect-slp.c:2775 0xfc2c6b vect_slp_analyze_node_operations ../../trunk/gcc/tree-vect-slp.c:2775 0xfc341a vect_slp_analyze_operations(vec_info*) ../../trunk/gcc/tree-vect-slp.c:2862 0xfc902f vect_slp_analyze_bb_1 ../../trunk/gcc/tree-vect-slp.c:3199 0xfc902f vect_slp_bb_region ../../trunk/gcc/tree-vect-slp.c:3260 0xfc902f vect_slp_bb(basic_block_def*) ../../trunk/gcc/tree-vect-slp.c:3395 0xfcbd7a execute ../../trunk/gcc/tree-vectorizer.c:1320 % cat mod1.f90 module mod1 implicit none integer, parameter :: wp = kind (1.d0) interface p_min module procedure p_min_wp end interface contains function p_min_wp (x) result (p_min) real(wp), intent(in) :: x real(wp) :: p_min p_min = x end function p_min_wp end module mod1 % cat mod2.f90 MODULE mod2 use mod1, only: p_min, wp implicit none contains subroutine foo (pr) real(wp), pointer :: pr(:) integer :: nzd real(wp) :: pmin real(wp) :: pmin_diag integer :: i nzd = 15 allocate (pr(nzd)) pmin_diag = 4000._wp pmin = p_min(pmin_diag) pmin = min (pmin,pmin_diag) pr(1) = log(pmin) do i=1,nzd-1 pr(i+1) = log(pmin) + i end do end subroutine foo end module mod2 Compilation passes e.g. with -O1, -fno-tree-vectorize, changing 1.d0 to 1.0, changing the loop bounds, or several other minor variations of the code.