https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81505
Bug ID: 81505 Summary: [5/6/7/8 Regression] ICE in tree-ssa-loop-manip.c:95 with -fsanitize=signed-integer-overflow Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org, mpolacek at gcc dot gnu.org Target Milestone: --- Starting from Marek's commit r218621, we ICE on: $ gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/torture/pr52298.c -fsanitize=signed-integer-overflow -O3 -c during GIMPLE pass: vect /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/torture/pr52298.c: In function ‘fn1’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/torture/pr52298.c:8:1: internal compiler error: tree check: expected integer_cst, have negate_expr in get_len, at tree.h:5351 fn1 () ^~~ 0x10e3467 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/tree.c:9848 0x762eda tree_check(tree_node const*, char const*, int, char const*, tree_code) ../../gcc/tree.h:3339 0x762eda wi::extended_tree<192>::get_len() const ../../gcc/tree.h:5351 0x762eda wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::decompose(long*, unsigned int, generic_wide_int<wi::extended_tree<192> > const&) ../../gcc/wide-int.h:929 0x762eda wide_int_ref_storage<true>::wide_int_ref_storage<generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, unsigned int) ../../gcc/wide-int.h:976 0x762eda generic_wide_int<wide_int_ref_storage<true> >::generic_wide_int<generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, unsigned int) ../../gcc/wide-int.h:753 0x762eda bool wi::lts_p<generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, generic_wide_int<wi::extended_tree<192> > const&) ../../gcc/wide-int.h:1794 0x762eda wi::binary_traits<generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> >, wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::precision_type, wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::precision_type>::signed_predicate_result operator< <generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, generic_wide_int<wi::extended_tree<192> > const&) ../../gcc/wide-int.h:3107 0x762eda tree_int_cst_lt(tree_node const*, tree_node const*) ../../gcc/tree.h:5416 0xf38c1d create_iv(tree_node*, tree_node*, tree_node*, loop*, gimple_stmt_iterator*, bool, tree_node**, tree_node**) ../../gcc/tree-ssa-loop-manip.c:95 0x175f492 vect_create_data_ref_ptr(gimple*, tree_node*, loop*, tree_node*, tree_node**, gimple_stmt_iterator*, gimple**, bool, bool*, tree_node*) ../../gcc/tree-vect-data-refs.c:4204 0x1052aa7 vectorizable_load ../../gcc/tree-vect-stmts.c:7360 0x105af69 vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*) ../../gcc/tree-vect-stmts.c:8645 0x107244c vect_transform_loop(_loop_vec_info*) ../../gcc/tree-vect-loop.c:7544 0x108ce38 vectorize_loops() ../../gcc/tree-vectorizer.c:745 0xf58a71 execute ../../gcc/tree-ssa-loop.c:412 Where my x86_64 tuning is: -mtune=generic -march=x86-64