[Bug tree-optimization/91896] [10 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1687
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91896 --- Comment #6 from Richard Biener --- Author: rguenth Date: Thu Sep 26 16:54:51 2019 New Revision: 276158 URL: https://gcc.gnu.org/viewcvs?rev=276158=gcc=rev Log: 2019-09-25 Richard Biener PR tree-optimization/91896 * tree-vect-loop.c (vectorizable_reduction): The single def-use cycle optimization cannot apply when there's more than one pattern stmt involved. * gcc.dg/torture/pr91896.c: New testcase. Added: trunk/gcc/testsuite/gcc.target/i386/pr91897.c Modified: trunk/gcc/ChangeLog trunk/gcc/expr.c trunk/gcc/testsuite/ChangeLog
[Bug tree-optimization/91896] [10 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1687
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91896 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Richard Biener --- Fixed.
[Bug tree-optimization/91896] [10 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1687
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91896 --- Comment #4 from Richard Biener --- Author: rguenth Date: Wed Sep 25 13:09:25 2019 New Revision: 276123 URL: https://gcc.gnu.org/viewcvs?rev=276123=gcc=rev Log: 2019-09-25 Richard Biener PR tree-optimization/91896 * tree-vect-loop.c (vectorizable_reduction): The single def-use cycle optimization cannot apply when there's more than one pattern stmt involved. * gcc.dg/torture/pr91896.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/torture/pr91896.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-vect-loop.c
[Bug tree-optimization/91896] [10 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1687
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91896 --- Comment #3 from Richard Biener --- For some reason if (ncopies > 1 && STMT_VINFO_RELEVANT (reduc_stmt_info) <= vect_used_only_live && (use_stmt_info = loop_vinfo->lookup_single_use (phi_result)) && vect_stmt_to_vectorize (use_stmt_info) == reduc_stmt_info) single_defuse_cycle = true; triggers. Here we have detected a pattern for the et *= 3 operation (somehow 8 byte vectors do not have multiplication?). But honestly I don't remember what the condition above tries to guard (nested cycles?). But we clearly cannot handle this case when the actual stmt vectorization is not under control of vectorizable_reduction ... So the problem must be somehow latent. Ah, of course - with operand swapping the et = et * 3 appears as et = 3 * et and that is not recognized by vect_synth_mult_by_constant. So the issue _is_ latent, we're likely just missing a pattern that applies to reduction ops and produces a pattern def sequence...
[Bug tree-optimization/91896] [10 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1687
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91896 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #2 from Richard Biener --- Mine.
[Bug tree-optimization/91896] [10 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1687
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91896 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2019-09-25 CC||marxin at gcc dot gnu.org, ||rguenth at gcc dot gnu.org Known to work||9.2.0 Target Milestone|--- |10.0 Ever confirmed|0 |1 Known to fail||10.0 --- Comment #1 from Martin Liška --- Confirmed, started with r275898.