[Bug tree-optimization/62012] Loop is not vectorized after function inlining (SCEV)

2014-09-09 Thread rguenth at gcc dot gnu.org
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)

2014-09-09 Thread ysrumyan at gmail dot com
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)

2014-09-09 Thread ysrumyan at gmail dot com
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)

2014-09-08 Thread 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?


[Bug tree-optimization/62012] Loop is not vectorized after function inlining (SCEV)

2014-09-08 Thread ysrumyan at gmail dot com
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)

2014-08-04 Thread ysrumyan at gmail dot com
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.