[Bug tree-optimization/62012] Loop is not vectorized after function inlining (SCEV)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62012 Richard Biener changed: What|Removed |Added Status|WAITING |RESOLVED Resolution|--- |FIXED --- Comment #6 from Richard Biener --- Fixed.
[Bug tree-optimization/62012] Loop is not vectorized after function inlining (SCEV)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62012 --- Comment #5 from Yuri Rumyantsev --- You can close this bug as fixed/resolved (see my comment). Thanks. Yuri. 2014-09-08 15:29 GMT+04:00 rguenth at gcc dot gnu.org : > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62012 > > Richard Biener changed: > >What|Removed |Added > > Status|UNCONFIRMED |WAITING >Last reconfirmed||2014-09-08 > Ever confirmed|0 |1 > > --- Comment #3 from Richard Biener --- > So it's independend of LTO. > > Confirmed. We have > > _28 = &MEM[(struct Array *)&fa + 256B].a[0] + _3; > *_28 = u_23; > > which SCEV messes up because it ends up with > > (instantiate_scev > (instantiate_below = 4) > (evolution_loop = 1) > (chrec = &MEM[(struct Array *)&fa + 256B].a[0]) > (res = &MEM[(struct Array *)&fa + 256B].a[0])) > (instantiate_scev > (instantiate_below = 4) > (evolution_loop = 1) > (chrec = {(long unsigned int) first_6(D) * 4, +, 4}_1) > (res = {(long unsigned int) first_6(D) * 4, +, 4}_1)) > (set_scalar_evolution > instantiated_below = 4 > (scalar = _13) > (scalar_evolution = {&MEM[(struct Array *)&fa + 256B].a[(sizetype) > first_6(D)], +, 4}_1)) > ) > failed: evolution of base is not affine. > > Not sure why it thinks that. > > Btw, on trunk we now vectorize this just fine probably because of the fix > for PR63148 which avoids moving first_6 * 4 inside the array-ref and we > get > > (scalar_evolution = {&MEM[(struct Array *)&fa + 256B].a[0] + (sizetype) > ((long unsigned int) first_6(D) * 4), +, 4}_1)) > ) > success. > > instead. > > So - can you re-check please? > > -- > You are receiving this mail because: > You reported the bug.
[Bug tree-optimization/62012] Loop is not vectorized after function inlining (SCEV)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62012 --- Comment #4 from Yuri Rumyantsev --- I checked that our benchmark is successfully vectorized with function inlining. So this bug must be closed as fixed/resolved.
[Bug tree-optimization/62012] Loop is not vectorized after function inlining (SCEV)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62012 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2014-09-08 Ever confirmed|0 |1 --- Comment #3 from Richard Biener --- So it's independend of LTO. Confirmed. We have _28 = &MEM[(struct Array *)&fa + 256B].a[0] + _3; *_28 = u_23; which SCEV messes up because it ends up with (instantiate_scev (instantiate_below = 4) (evolution_loop = 1) (chrec = &MEM[(struct Array *)&fa + 256B].a[0]) (res = &MEM[(struct Array *)&fa + 256B].a[0])) (instantiate_scev (instantiate_below = 4) (evolution_loop = 1) (chrec = {(long unsigned int) first_6(D) * 4, +, 4}_1) (res = {(long unsigned int) first_6(D) * 4, +, 4}_1)) (set_scalar_evolution instantiated_below = 4 (scalar = _13) (scalar_evolution = {&MEM[(struct Array *)&fa + 256B].a[(sizetype) first_6(D)], +, 4}_1)) ) failed: evolution of base is not affine. Not sure why it thinks that. Btw, on trunk we now vectorize this just fine probably because of the fix for PR63148 which avoids moving first_6 * 4 inside the array-ref and we get (scalar_evolution = {&MEM[(struct Array *)&fa + 256B].a[0] + (sizetype) ((long unsigned int) first_6(D) * 4), +, 4}_1)) ) success. instead. So - can you re-check please?
[Bug tree-optimization/62012] Loop is not vectorized after function inlining (SCEV)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62012 --- Comment #2 from Yuri Rumyantsev --- Any updates? Thanks.
[Bug tree-optimization/62012] Loop is not vectorized after function inlining (SCEV)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62012 --- Comment #1 from Yuri Rumyantsev --- Created attachment 33241 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33241&action=edit test-case to reproduce Options to compile are: -Ofast -m64 -march=core-avx2 -fopenmp and macros -DPARAM can be used to get vectorizable version of test.