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

            Bug ID: 106717
           Summary: [13 Regression] ICE: tree check: expected integer_cst,
                    have poly_int_cst in get_len, at tree.h:6247
           Product: gcc
           Version: 13.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 13.0.0 20220821 snapshot (g:d6a39c25c05c6ed5df8ce49eda719d17e40e29bb) ICEs
when compiling the following testcase w/ -mcpu=neoverse-512tvb -O2:

void
foo (int *p)
{
  int *a = p;
  int i;

  p[0] = 0;

  for (i = 0; i < 3; ++i)
    {
      ++*a;
      ++a;
    }

  p[1] = 0;
}

% aarch64-linux-gnu-gcc-13.0.0 -mcpu=neoverse-512tvb -O2 -c yhugtech.c
during GIMPLE pass: slp
yhugtech.c: In function 'foo':
yhugtech.c:2:1: internal compiler error: tree check: expected integer_cst, have
poly_int_cst in get_len, at tree.h:6247
    2 | foo (int *p)
      | ^~~
0x7ff2be tree_check_failed(tree_node const*, char const*, int, char const*,
...)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree.cc:8817
0x1d34223 tree_check(tree_node const*, char const*, int, char const*,
tree_code)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree.h:3764
0x1d34223 wi::extended_tree<576>::get_len() const
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree.h:6247
0x1d34223 wi::int_traits<generic_wide_int<wi::extended_tree<576> >
>::decompose(long*, unsigned int, generic_wide_int<wi::extended_tree<576> >
const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/wide-int.h:985
0x1d34223 wide_int_ref_storage<true,
false>::wide_int_ref_storage<generic_wide_int<wi::extended_tree<576> >
>(generic_wide_int<wi::extended_tree<576> > const&, unsigned int)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/wide-int.h:1034
0x1d34223 generic_wide_int<wide_int_ref_storage<true, false>
>::generic_wide_int<generic_wide_int<wi::extended_tree<576> >
>(generic_wide_int<wi::extended_tree<576> > const&, unsigned int)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/wide-int.h:790
0x1d34223 bool wi::eq_p<generic_wide_int<wi::extended_tree<576> >,
int>(generic_wide_int<wi::extended_tree<576> > const&, int const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/wide-int.h:1872
0x1d34223 bool wi::ne_p<generic_wide_int<wi::extended_tree<576> >,
int>(generic_wide_int<wi::extended_tree<576> > const&, int const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/wide-int.h:1910
0x1d34223 wi::binary_traits<generic_wide_int<wi::extended_tree<576> >, int,
wi::int_traits<generic_wide_int<wi::extended_tree<576> > >::precision_type,
wi::int_traits<int>::precision_type>::predicate_result
operator!=<generic_wide_int<wi::extended_tree<576> >,
int>(generic_wide_int<wi::extended_tree<576> > const&, int const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/wide-int.h:3308
0x1d34223 if_nonpoly2<generic_wide_int<wi::extended_tree<576> >, int, bool,
poly_int_traits<generic_wide_int<wi::extended_tree<576> > >::is_poly,
poly_int_traits<int>::is_poly>::type
maybe_ne<generic_wide_int<wi::extended_tree<576> >,
int>(generic_wide_int<wi::extended_tree<576> > const&, int const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/poly-int.h:1313
0x1d34223 bool ranges_maybe_overlap_p<generic_wide_int<wi::extended_tree<576>
>, generic_wide_int<wi::extended_tree<576> >,
generic_wide_int<wi::extended_tree<576> >,
generic_wide_int<wi::extended_tree<576> >
>(generic_wide_int<wi::extended_tree<576> > const&,
generic_wide_int<wi::extended_tree<576> > const&,
generic_wide_int<wi::extended_tree<576> > const&,
generic_wide_int<wi::extended_tree<576> > const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/poly-int.h:2635
0x1d34223 bool ranges_maybe_overlap_p<generic_wide_int<wi::extended_tree<576>
>, generic_wide_int<wi::extended_tree<576> >,
generic_wide_int<wi::extended_tree<576> >,
generic_wide_int<wi::extended_tree<576> >
>(generic_wide_int<wi::extended_tree<576> > const&,
generic_wide_int<wi::extended_tree<576> > const&,
generic_wide_int<wi::extended_tree<576> > const&,
generic_wide_int<wi::extended_tree<576> > const&)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/poly-int.h:2629
0x1d27c8a dr_may_alias_p(data_reference const*, data_reference const*, loop*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree-data-ref.cc:2980
0x1d300f9 initialize_data_dependence_relation(data_reference*, data_reference*,
vec<loop*, va_heap, vl_ptr>)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree-data-ref.cc:3469
0x1d488f9 vect_slp_analyze_node_dependences
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree-vect-data-refs.cc:747
0x1d4af64 vect_slp_analyze_instance_dependence(vec_info*, _slp_instance*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree-vect-data-refs.cc:855
0x12663fb vect_slp_analyze_bb_1
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree-vect-slp.cc:5902
0x12663fb vect_slp_region
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree-vect-slp.cc:5977
0x1267d84 vect_slp_bbs
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree-vect-slp.cc:6168
0x12681c8 vect_slp_function(function*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220821/work/gcc-13-20220821/gcc/tree-vect-slp.cc:6256

Reply via email to