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

            Bug ID: 91665
           Summary: [9/10 Regression] ICE in build_vector_from_val, at
                    tree.c:1904
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-checking, ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

gcc-10.0.0-alpha20190901 snapshot (r275284) ICEs when compiling the following
testcase w/ -Ofast:

short int u2;

void
nn (short int dv, short int cu)
{
  short int *sz = &u2;

  dv = 1;
  while (dv != 0)
    dv += ++cu || (*sz = dv);
}

% gcc-10.0.0-alpha20190901 -Ofast -c xsledmfe.c
during GIMPLE pass: vect
xsledmfe.c: In function 'nn':
xsledmfe.c:4:1: internal compiler error: in build_vector_from_val, at
tree.c:1904
    4 | nn (short int dv, short int cu)
      | ^~
0x71589c build_vector_from_val(tree_node*, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190901/work/gcc-10-20190901/gcc/tree.c:1904
0xfb1035 vect_create_epilog_for_reduction
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190901/work/gcc-10-20190901/gcc/tree-vect-loop.c:4666
0xfb8475 vectorizable_reduction(_stmt_vec_info*, gimple_stmt_iterator*,
_stmt_vec_info**, _slp_tree*, _slp_instance*, vec<stmt_info_for_cost, va_heap,
vl_ptr>*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190901/work/gcc-10-20190901/gcc/tree-vect-loop.c:7408
0xfa29ee vect_transform_stmt(_stmt_vec_info*, gimple_stmt_iterator*,
_slp_tree*, _slp_instance*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190901/work/gcc-10-20190901/gcc/tree-vect-stmts.c:10783
0xfa3bb9 vect_transform_loop_stmt
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190901/work/gcc-10-20190901/gcc/tree-vect-loop.c:8459
0xfa8bc9 vect_transform_loop(_loop_vec_info*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190901/work/gcc-10-20190901/gcc/tree-vect-loop.c:8684
0xfd5cac try_vectorize_loop_1
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190901/work/gcc-10-20190901/gcc/tree-vectorizer.c:980
0xfd671f vectorize_loops()
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190901/work/gcc-10-20190901/gcc/tree-vectorizer.c:1112

gcc 9 fails differently:

% gcc-9.2.0 -Ofast -c xsledmfe.c -fchecking
xsledmfe.c: In function 'nn':
xsledmfe.c:4:1: error: mismatching comparison operand types
    4 | nn (short int dv, short int cu)
      | ^~
short int
unsigned short
stmp_u2_lsm.20_78 = stmp_u2_lsm.20_77 == 0 ? u2_lsm.6_5 : stmp_u2_lsm.20_77;
xsledmfe.c:4: confused by earlier errors, bailing out

Reply via email to