https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99656
Bug ID: 99656 Summary: ICE in linear_loads_p 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-alpha2021031 snapshot (g:c2d7c39fcb8a3cb67600cdb6fde49ecb0e951589) ICEs when compiling the following testcase w/ -march=armv8.3-a -O1 -ftree-slp-vectorize -fwrapv: SUBROUTINE ZLAHQR2(H, LDH, H22, T1) INTEGER LDH COMPLEX*16 H(LDH, *) INTEGER NR COMPLEX*16 H22, SUM, T1, V2 COMPLEX*16 V( 3 ) EXTERNAL ZLARFG INTRINSIC DCONJG V2 = H22 CALL ZLARFG(T1) SUM = DCONJG(T1) * H(1, 1) H(1, 1) = SUM * V2 RETURN END % aarch64-linux-gnu-gfortran-11.0.1 -march=armv8.3-a -O1 -ftree-slp-vectorize -fwrapv -c dimduxtl.f during GIMPLE pass: slp dimduxtl.f:1:24: 1 | SUBROUTINE ZLAHQR2(H, LDH, H22, T1) | ^ internal compiler error: Segmentation fault 0xf06aaf crash_signal /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/toplev.c:327 0x11d04e3 vec<unsigned int, va_heap, vl_embed>::operator[](unsigned int) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/vec.h:890 0x11d04e3 vec<unsigned int, va_heap, vl_ptr>::operator[](unsigned int) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/vec.h:1461 0x11d04e3 linear_loads_p /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp-patterns.c:258 0x11d03c6 linear_loads_p /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp-patterns.c:242 0x11d143c complex_mul_pattern::matches(_complex_operation, hash_map<_slp_tree*, std::pair<_complex_perm_kinds, vec<unsigned int, va_heap, vl_ptr> >, simple_hashmap_traits<default_hash_traits<_slp_tree*>, std::pair<_complex_perm_kinds, vec<unsigned int, va_heap, vl_ptr> > > >*, _slp_tree**, vec<_slp_tree*, va_heap, vl_ptr>*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp-patterns.c:1006 0x11d1bb0 complex_mul_pattern::matches(_complex_operation, hash_map<_slp_tree*, std::pair<_complex_perm_kinds, vec<unsigned int, va_heap, vl_ptr> >, simple_hashmap_traits<default_hash_traits<_slp_tree*>, std::pair<_complex_perm_kinds, vec<unsigned int, va_heap, vl_ptr> > > >*, _slp_tree**, vec<_slp_tree*, va_heap, vl_ptr>*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp-patterns.c:991 0x11d1bb0 complex_operations_pattern::recognize(hash_map<_slp_tree*, std::pair<_complex_perm_kinds, vec<unsigned int, va_heap, vl_ptr> >, simple_hashmap_traits<default_hash_traits<_slp_tree*>, std::pair<_complex_perm_kinds, vec<unsigned int, va_heap, vl_ptr> > > >*, _slp_tree**) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp-patterns.c:1491 0x11c235c vect_match_slp_patterns_2 /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp.c:2427 0x11c2330 vect_match_slp_patterns_2 /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp.c:2422 0x11c63cf vect_match_slp_patterns /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp.c:2458 0x11c63cf vect_analyze_slp(vec_info*, unsigned int) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp.c:2901 0x11ca92c vect_slp_analyze_bb_1 /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp.c:4820 0x11ca92c vect_slp_region /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp.c:4932 0x11ca92c vect_slp_bbs /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp.c:5082 0x11cc74c vect_slp_function(function*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vect-slp.c:5168 0x11d2a02 execute /var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210314/work/gcc-11-20210314/gcc/tree-vectorizer.c:1450