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

            Bug ID: 103311
           Summary: [12 Regression] ICE in
                    complex_mul_pattern::build(vec_info*)
           Product: gcc
           Version: 12.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

gcc-12.0.0-alpha20111114 snapshot (g:3057f1ab737582a9fb37a3fb967ed8bf3659f2f4)
ICEs when compiling the following testcase w/ -march=armv8.3-a -O1
-ftree-slp-vectorize:

_Complex double y;

void
cbknu (_Complex double f)
{
  const _Complex double cone = 1.0e0;

  f = f * cone;
  y = f * cone;
}

% aarch64-linux-gnu-gcc-12.0.0 -march=armv8.3-a -O1 -ftree-slp-vectorize -c
cbknu.c
during GIMPLE pass: slp
cbknu.c: In function 'cbknu':
cbknu.c:4:1: internal compiler error: in operator[], at vec.h:889
    4 | cbknu (_Complex double f)
      | ^~~~~
0x7e18be vec<tree_node*, va_heap, vl_embed>::operator[](unsigned int)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/vec.h:889
0x7e1a73 vec<_slp_tree*, va_heap, vl_embed>::operator[](unsigned int)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp-patterns.c:1119
0x7e1a73 vec<_slp_tree*, va_heap, vl_ptr>::operator[](unsigned int)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/vec.h:1495
0x7e1a73 complex_mul_pattern::build(vec_info*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp-patterns.c:1083
0x11f8b00 vect_match_slp_patterns_2
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:2915
0x11f8aa6 vect_match_slp_patterns_2
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:2907
0x11f8aa6 vect_match_slp_patterns_2
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:2907
0x11fce1e vect_match_slp_patterns
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:2943
0x11fce1e vect_analyze_slp(vec_info*, unsigned int)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:3426
0x12030dc vect_slp_analyze_bb_1
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:5744
0x12030dc vect_slp_region
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:5846
0x1204b24 vect_slp_bbs
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:6038
0x1204f68 vect_slp_function(function*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:6126
0x120c28a execute
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vectorizer.c:1459

Reply via email to