[Bug tree-optimization/65961] [6 Regression] ice in vect_is_simple_use_1 with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65961 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #8 from Richard Biener --- Fixed.
[Bug tree-optimization/65961] [6 Regression] ice in vect_is_simple_use_1 with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65961 --- Comment #7 from Richard Biener --- Author: rguenth Date: Tue Jun 2 07:50:19 2015 New Revision: 224013 URL: https://gcc.gnu.org/viewcvs?rev=224013&root=gcc&view=rev Log: 2015-06-02 Richard Biener PR tree-optimization/65961 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus check and clarify dump message. (vect_build_slp_tree): If all children are built up from scalars build up the parent from scalars instead. * tree-vect-stmts.c (vect_is_simple_use): Cleanup. * gcc.dg/torture/pr65961.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/torture/pr65961.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-vect-slp.c trunk/gcc/tree-vect-stmts.c
[Bug tree-optimization/65961] [6 Regression] ice in vect_is_simple_use_1 with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65961 --- Comment #6 from Richard Biener --- It might be mitigated for the testcase in question but the underlying problem didn't get fixed.
[Bug tree-optimization/65961] [6 Regression] ice in vect_is_simple_use_1 with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65961 --- Comment #5 from David Binderman --- As of trunk 20150520, this bug looks fixed to me.
[Bug tree-optimization/65961] [6 Regression] ice in vect_is_simple_use_1 with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65961 --- Comment #4 from Richard Biener --- Hmpf, so we have an operand that is both part of a regular SLP node _and_ is part of a SLP node that gets its operand built up from scalars. So obviously looking at STMT_VINFO_VECTORIZABLE (def-of-op) isn't giving the correct answer (it depends on context). I tried to avoid passing down the SLP node to vect_is_simple_use[_1], but that is what it would take to fix this (well, or reject the SLP build while we compute STMT_VINFO_VECTORIZABLE ()). I have to think more about what refactoring would make sense here.
[Bug tree-optimization/65961] [6 Regression] ice in vect_is_simple_use_1 with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65961 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #3 from Richard Biener --- Mine.
[Bug tree-optimization/65961] [6 Regression] ice in vect_is_simple_use_1 with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65961 Marek Polacek changed: What|Removed |Added CC||mpolacek at gcc dot gnu.org Target Milestone|--- |6.0 --- Comment #2 from Marek Polacek --- Started with r222514.
[Bug tree-optimization/65961] [6 Regression] ice in vect_is_simple_use_1 with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65961 Markus Trippelsdorf changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-05-01 CC||trippels at gcc dot gnu.org Component|c |tree-optimization Summary|ice in vect_is_simple_use_1 |[6 Regression] ice in |with -O3|vect_is_simple_use_1 with ||-O3 Ever confirmed|0 |1 --- Comment #1 from Markus Trippelsdorf --- int *a; void foo () { do { a[16] = (a[1] ^ a[0]) << 1 | a[1]; a[17] = (a[0] ^ a[1]) << 1 | a[0]; a[18] = (a[0] ^ a[1]) << 1 | a[0]; a[19] = (a[0] ^ a[1]) << 1 | a[0]; a[20] = (a[0] ^ a[1]) << 1 | a[0]; a[21] = (a[0] ^ a[1]) << 1 | a[0]; a[22] = (a[0] ^ a[1]) << 1 | a[0]; a[23] = (a[20] ^ a[1]) << 1 | a[9]; a += 8; } while (1); }