[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 Richard Biener changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --- Comment #17 from Richard Biener --- Fixed.
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 --- Comment #14 from Ulrich Weigand --- Building the following reduced test case with -O2 -ftree-vectorize -fcx-fortran-rules with an spu-elf cross-cc1 shows the ICE. void test (_Complex float *dest, _Complex float scale, int count) { for (int x = 0; x < count; x++) dest[x] *= scale; }
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 --- Comment #16 from Richard Biener --- Author: rguenth Date: Mon Nov 16 15:04:00 2015 New Revision: 230428 URL: https://gcc.gnu.org/viewcvs?rev=230428=gcc=rev Log: 2015-11-16 Richard BienerPR tree-optimization/68306 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix bogus copying from verify_data_ref_alignment and use continue instead of return. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-vect-data-refs.c
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 --- Comment #13 from Richard Biener --- Can you attach preprocessed source? See also PR68367 which I can't reproduce with a cross.
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 --- Comment #15 from rguenther at suse dot de --- On Mon, 16 Nov 2015, uweigand at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 > > --- Comment #14 from Ulrich Weigand --- > Building the following reduced test case with > -O2 -ftree-vectorize -fcx-fortran-rules > with an spu-elf cross-cc1 shows the ICE. > > void > test (_Complex float *dest, > _Complex float scale, int count) > { > for (int x = 0; x < count; x++) > dest[x] *= scale; > } Bah, too much copy TRivial fix: Index: gcc/tree-vect-data-refs.c === --- gcc/tree-vect-data-refs.c (revision 230421) +++ gcc/tree-vect-data-refs.c (working copy) @@ -967,13 +967,13 @@ vect_verify_datarefs_alignment (loop_vec /* For interleaving, only the alignment of the first access matters. */ if (STMT_VINFO_GROUPED_ACCESS (stmt_info) && GROUP_FIRST_ELEMENT (stmt_info) != stmt) - return true; + continue; /* Strided accesses perform only component accesses, alignment is irrelevant for them. */ if (STMT_VINFO_STRIDED_P (stmt_info) && !STMT_VINFO_GROUPED_ACCESS (stmt_info)) - return true; + continue; if (! verify_data_ref_alignment (dr)) return false;
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 Ulrich Weigand changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --- Comment #12 from Ulrich Weigand --- Unfortunately, it seems that your second commit brought back the failure on spu-elf that had already been fixed by the first commit ... /home/uweigand/dailybuild/spu-tc-2015-11-13/gcc-head/src/libgfortran/generated/matmul_c4.c: In function 'matmul_c4': /home/uweigand/dailybuild/spu-tc-2015-11-13/gcc-head/src/libgfortran/generated/matmul_c4.c:79:1: internal compiler error: in vectorizable_store, at tree-vect-stmts.c:5655 matmul_c4 (gfc_array_c4 * const restrict retarray, ^ 0x10b19c83 vectorizable_store /home/uweigand/dailybuild/spu-tc-2015-11-13/gcc-head/src/gcc/tree-vect-stmts.c:5655 0x10b21db3 vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*) /home/uweigand/dailybuild/spu-tc-2015-11-13/gcc-head/src/gcc/tree-vect-stmts.c:8007 0x10b49ecf vect_schedule_slp_instance /home/uweigand/dailybuild/spu-tc-2015-11-13/gcc-head/src/gcc/tree-vect-slp.c:3608 0x10b503ab vect_schedule_slp(vec_info*) /home/uweigand/dailybuild/spu-tc-2015-11-13/gcc-head/src/gcc/tree-vect-slp.c:3673 0x10b2dffb vect_transform_loop(_loop_vec_info*) /home/uweigand/dailybuild/spu-tc-2015-11-13/gcc-head/src/gcc/tree-vect-loop.c:6773 0x10b57ab3 vectorize_loops() /home/uweigand/dailybuild/spu-tc-2015-11-13/gcc-head/src/gcc/tree-vectorizer.c:533 0x109fa5d7 execute /home/uweigand/dailybuild/spu-tc-2015-11-13/gcc-head/src/gcc/tree-ssa-loop.c:273
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 Richard Biener changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --- Comment #11 from Richard Biener --- Fixed.
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 --- Comment #10 from Richard Biener --- Author: rguenth Date: Fri Nov 13 12:14:57 2015 New Revision: 230310 URL: https://gcc.gnu.org/viewcvs?rev=230310=gcc=rev Log: 2015-11-13 Richard BienerPR tree-optimization/68306 * tree-vect-data-refs.c (verify_data_ref_alignment): Move loop related checks ... (vect_verify_datarefs_alignment): ... here. (vect_slp_analyze_and_verify_node_alignment): Compute and verify alignment of the single DR that it matters. * tree-vect-stmts.c (vectorizable_store): Add an assert. (vectorizable_load): Add a comment. * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used for determining load cost. * gcc.dg/pr68306.c: Adjust. * gcc.dg/pr68306-2.c: New testcase. * gcc.dg/pr68306-3.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/pr68306-2.c trunk/gcc/testsuite/gcc.dg/pr68306-3.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/pr68306.c trunk/gcc/tree-vect-data-refs.c trunk/gcc/tree-vect-slp.c trunk/gcc/tree-vect-stmts.c
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 --- Comment #8 from Richard Biener --- I'm testing another followup...
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 Richard Biener changed: What|Removed |Added CC||su at cs dot ucdavis.edu --- Comment #9 from Richard Biener --- *** Bug 68324 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Target Milestone|--- |6.0 --- Comment #3 from Richard Biener --- Mine.
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 Ulrich Weigand changed: What|Removed |Added CC||uweigand at gcc dot gnu.org --- Comment #4 from Ulrich Weigand --- I see the same ICE in a spu-elf libgfortran build: /home/uweigand/dailybuild/spu-tc-2015-11-11/gcc-head/src/libgfortran/generated/matmul_c8.c: In function 'matmul_c8': /home/uweigand/dailybuild/spu-tc-2015-11-11/gcc-head/src/libgfortran/generated/matmul_c8.c:79:1: internal compiler error: in vectorizable_store, at tree-vect-stmts.c:5651 matmul_c8 (gfc_array_c8 * const restrict retarray, ^ 0x10b10373 vectorizable_store /home/uweigand/dailybuild/spu-tc-2015-11-11/gcc-head/src/gcc/tree-vect-stmts.c:5651 0x10b1e553 vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*) /home/uweigand/dailybuild/spu-tc-2015-11-11/gcc-head/src/gcc/tree-vect-stmts.c:8003 0x10b48b6f vect_schedule_slp_instance /home/uweigand/dailybuild/spu-tc-2015-11-11/gcc-head/src/gcc/tree-vect-slp.c:3484 0x10b4afeb vect_schedule_slp(vec_info*) /home/uweigand/dailybuild/spu-tc-2015-11-11/gcc-head/src/gcc/tree-vect-slp.c:3549 0x10b4f2f7 vect_slp_bb(basic_block_def*) /home/uweigand/dailybuild/spu-tc-2015-11-11/gcc-head/src/gcc/tree-vect-slp.c:2543 0x10b502c7 execute /home/uweigand/dailybuild/spu-tc-2015-11-11/gcc-head/src/gcc/tree-vectorizer.c:734
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 --- Comment #5 from Richard Biener --- Author: rguenth Date: Thu Nov 12 14:02:44 2015 New Revision: 230260 URL: https://gcc.gnu.org/viewcvs?rev=230260=gcc=rev Log: 2015-11-12 Richard BienerPR tree-optimization/68306 * tree-vect-data-refs.c (verify_data_ref_alignment): Remove relevant and vectorizable checks here. (vect_verify_datarefs_alignment): Add relevant check here. * gcc.dg/pr68306.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/pr68306.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-vect-data-refs.c
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #6 from Richard Biener --- Fixed.
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 Markus Trippelsdorf changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --- Comment #7 from Markus Trippelsdorf --- (In reply to Richard Biener from comment #6) > Fixed. Unfortunately, no. trippels@gcc2-power8 linux % cat ucm.i extern void fn2(); struct { unsigned qp_num; unsigned starting_psn; void *private_data; } a; struct { unsigned id; unsigned qpn; unsigned psn; } b; void fn1() { a.qp_num = b.qpn; a.starting_psn = b.psn; fn2(b.id); } trippels@gcc2-power8 linux % gcc -mno-altivec -mno-vsx -O3 -c ucm.i ucm.i: In function ‘fn1’: ucm.i:12:6: internal compiler error: in vectorizable_load, at tree-vect-stmts.c:6707 void fn1() { ^
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 --- Comment #2 from Markus Trippelsdorf --- ICE's in vectorizable_load, too: markus@x4 linux % cat vsyscall_gtod.i struct { int tz_minuteswest; int tz_dsttime; } a, b; void fn1() { b.tz_minuteswest = a.tz_minuteswest; b.tz_dsttime = a.tz_dsttime; } markus@x4 linux % gcc -mno-sse -mno-mmx -O3 -c vsyscall_gtod.i vsyscall_gtod.i: In function ‘fn1’: vsyscall_gtod.i:5:6: internal compiler error: in vectorizable_load, at tree-vect-stmts.c:6707 void fn1() { ^ 0xd0a0d9 vectorizable_load ../../gcc/gcc/tree-vect-stmts.c:6707 0xd118d0 vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*) ../../gcc/gcc/tree-vect-stmts.c:7998 0xd28e2d vect_schedule_slp_instance ../../gcc/gcc/tree-vect-slp.c:3484 0xd28c89 vect_schedule_slp_instance ../../gcc/gcc/tree-vect-slp.c:3365 0xd2a936 vect_schedule_slp(vec_info*) ../../gcc/gcc/tree-vect-slp.c:3549 0xd2de7c vect_slp_bb(basic_block_def*) ../../gcc/gcc/tree-vect-slp.c:2543 0xd2fef5 execute ../../gcc/gcc/tree-vectorizer.c:734
[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 Markus Trippelsdorf changed: What|Removed |Added Target|powerpc64le-unknown-linux-g | |nu | Status|UNCONFIRMED |NEW Last reconfirmed||2015-11-12 Host|powerpc64le-unknown-linux-g | |nu | Ever confirmed|0 |1 Build|powerpc64le-unknown-linux-g | |nu | --- Comment #1 from Markus Trippelsdorf --- Also happens on x86_64 with -mno-sse -mno-mmx.