[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2018-11-19 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 Martin Liška changed: What|Removed |Added CC||marxin at gcc dot gnu.org --- Comment #39

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2017-01-31 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 Bug 70729 depends on bug 77318, which changed state. Bug 77318 Summary: [7 regression] FAIL: gfortran.dg/graphite/pr68279.f90 -O (internal compiler error) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77318 What|Removed

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #38 from Jakub Jelinek --- Sorry, make that __attribute__((noinline, noclone)) void baz (int *p, int *q, int *r, int *s) { #pragma omp simd for (int i = 0; i < 1024; i++) { p[i] += q[0] * 6; r[i] += s[0] * 9; } }

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #37 from Yuri Rumyantsev --- Jakub, I assume that yoour #C33 test-case is not correct, i.e. it can not be marked with pragma omp simd. For example, even if we turn off lim phase it will be aborted: my_g++ -O3 -m64 t33.cpp -o t33.exe

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #36 from Yuri Rumyantsev --- #c33 testcase was not tested since I have some doubts about it. Note that original problem was #pragma omp simd for (int i=0; i: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 > > --- Comment #35 f

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #35 from Jakub Jelinek --- Doesn't it still miscompile the #c33 testcase? Say with __attribute__((noinline, noclone)) on baz and int v[2048]; int main () { v[1023] = 5; baz (v, v + 1023, v + 1024, v + 1023); int i; for (i = 0

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #34 from Yuri Rumyantsev --- Thanks a lot Jakub for your detail comments. I have simple fix which cures failures from 71734. The fix is simple enough and simply check that the ref in problem belongs to simd loop: diff --git a/gcc/tre

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #33 from Jakub Jelinek --- In any case, loop->safelen > 0 test looks also wrong, if there are guarantees about single iteration only (safelen(1)), then there is nothing useful at all. So it must be loop->safelen >= 2. For foo in #c29

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #32 from Jakub Jelinek --- Also, the testcase has weird dg- directives: // { dg-do compile } // { dg-require-effective-target vect_simd_clones } // { dg-additional-options "-Ofast" } // { dg-additional-options "-mavx2 -fopenmp-simd" {

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #31 from Jakub Jelinek --- A question is if #pragma GCC ivdep has similar guarantees/restrictions; the documentation only disallows certain loop-carried dependencies, in particular those that would prevent vectorization, so I think it

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #30 from Jakub Jelinek --- Another thing to think of, e.g. void baz (int *p, int *q) { #pragma omp simd safelen(2) for (int i = 0; i < 1024; i++) p[4 * i] += q[0]; } for aliasing p[4 * 1022] I think still applies that if (&q[0

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-04 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #29 from Jakub Jelinek --- The #c27 r237844 change looks bogus to me. First of all, IMNSHO you can argue this way only if ref is a reference seen in loop LOOP, which is the case of e.g. *.omp_data_i_23(D).a ref in simd3.f90 -O2 -fopen

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-07-01 Thread kyukhin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #28 from Kirill Yukhin --- Author: kyukhin Date: Fri Jul 1 09:42:01 2016 New Revision: 237907 URL: https://gcc.gnu.org/viewcvs?rev=237907&root=gcc&view=rev Log: PR tree-optimization/70729 gcc/ * tree-vectorizer.c (adjust_si

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-06-29 Thread ienkovich at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #27 from Ilya Enkovich --- Author: ienkovich Date: Wed Jun 29 10:16:43 2016 New Revision: 237844 URL: https://gcc.gnu.org/viewcvs?rev=237844&root=gcc&view=rev Log: gcc/ 2016-06-29 Yuri Rumyantsev PR tree-optimization/707

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-06-13 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #26 from Richard Biener --- (In reply to Yuri Rumyantsev from comment #25) > Created attachment 38684 [details] > patch.2 > > Richard! > > I prepared the second part of patch and checked that it does not > produce any new failures.

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-06-10 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #25 from Yuri Rumyantsev --- Richard! I prepared the second part of patch and checked that it does not produce any new failures. What is your opinion - could I send it to GCC community for review? ChangeLog: 2016-06-10 Yuri Rumyant

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-06-08 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #24 from rguenther at suse dot de --- On Wed, 8 Jun 2016, ysrumyan at gmail dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 > > --- Comment #23 from Yuri Rumyantsev --- > OK. I will try to prepare the second par

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-06-08 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #23 from Yuri Rumyantsev --- OK. I will try to prepare the second part of patch. Few comments about vect-simd-clone-5.c test failure. 1. This loop is marked with safelen=MAX_INT. 2. It contains the following stmt's: D.3301 = foo.simdc

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-06-08 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #22 from rguenther at suse dot de --- On Tue, 7 Jun 2016, ysrumyan at gmail dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 > > --- Comment #21 from Yuri Rumyantsev --- > Richard! > > Are you planning to prepar

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-06-07 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #21 from Yuri Rumyantsev --- Richard! Are you planning to prepare the second part of the patch (zeroing safelen and testing it in loop invariant motion phase as you proposed)? Thanks.

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-05-20 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #20 from rguenther at suse dot de --- On Fri, 20 May 2016, sch...@linux-m68k.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 > > --- Comment #18 from Andreas Schwab --- > FAIL: gfortran.dg/graphite/pr68279.f90 -O

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-05-20 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 ktkachov at gcc dot gnu.org changed: What|Removed |Added CC||ktkachov at gcc dot gnu.org

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-05-20 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #18 from Andreas Schwab --- FAIL: gfortran.dg/graphite/pr68279.f90 -O (internal compiler error) /opt/gcc/gcc-20160520/gcc/testsuite/gfortran.dg/graphite/pr68279.f90:8:0: internal compiler error: Aborted 0xb9e487 crash_signal

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-05-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #17 from Richard Biener --- Only the LIM safelen part should be missing now (and unsetting of safelen after lowering of simd-lane).

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-05-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #16 from Richard Biener --- Author: rguenth Date: Thu May 19 07:39:52 2016 New Revision: 236440 URL: https://gcc.gnu.org/viewcvs?rev=236440&root=gcc&view=rev Log: 2016-05-19 Richard Biener PR tree-optimization/70729

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-29 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #15 from rguenther at suse dot de --- On Fri, 29 Apr 2016, ienkovich at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 > > --- Comment #14 from Ilya Enkovich --- > (In reply to Richard Biener from comme

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-29 Thread ienkovich at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #14 from Ilya Enkovich --- (In reply to Richard Biener from comment #13) > (In reply to Yuri Rumyantsev from comment #12) > > Created attachment 38367 [details] > > modified patch > > The loop->aux flagging looks redundant to me. Wh

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #13 from Richard Biener --- (In reply to Yuri Rumyantsev from comment #12) > Created attachment 38367 [details] > modified patch The loop->aux flagging looks redundant to me. Why is ->safelen only valid before vectorization? I supp

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-28 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #12 from Yuri Rumyantsev --- Created attachment 38367 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38367&action=edit modified patch

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-28 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #11 from Yuri Rumyantsev --- Richard, I slightly modify the patch proposed by you: 1. Apply loop->safelen check only if lim is invoked before loop vectorization since its value could be non-correct (I simply add bool param to it). 2.

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-21 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #10 from Richard Biener --- (In reply to Richard Biener from comment #9) > Oh, and I believe to make nests with only outer safelen > 0 work correctly we > need to move the check elsewhere: > > Index: gcc/tree-ssa-loop-im.c >

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-20 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #9 from Richard Biener --- Oh, and I believe to make nests with only outer safelen > 0 work correctly we need to move the check elsewhere: Index: gcc/tree-ssa-loop-im.c

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-20 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #8 from Richard Biener --- Index: gcc/passes.def === --- gcc/passes.def (revision 235237) +++ gcc/passes.def (working copy) @@ -244,6 +244,7 @@ along with GCC;

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-20 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #7 from rguenther at suse dot de --- On Tue, 19 Apr 2016, ienkovich at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 > > Ilya Enkovich changed: > >What|Removed |Add

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-19 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #6 from Yuri Rumyantsev --- Richard, I did change proposed by you but it still does not help since we have loop-carried dependency through this_4(D)->S_n: : _5 = this_4(D)->S_n; ... : pretmp_54 = this_4(D)->C2; pretmp_57 =

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-19 Thread ienkovich at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 Ilya Enkovich changed: What|Removed |Added CC||ienkovich at gcc dot gnu.org --- Comment

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #4 from Richard Biener --- Doing invariant motion before PRE makes sense (w/o store motion, after loop header copying).

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #3 from Richard Biener --- -fno-tree-pre "fixes" this.

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-19 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed|

[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized

2016-04-19 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729 --- Comment #1 from Yuri Rumyantsev --- Created attachment 38309 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38309&action=edit test-case to reproduce Must be compiled with -Ofast -mavx2 -fopenmp options on x86 machine.