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

Reply via email to