http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35229
--- Comment #8 from Richard Biener ---
Still happens for partially loop invariant loads (partially loop invariant as
in blocked by a following aliasing store in the loop body). Like seen in
PR57223.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35229
Richard Biener changed:
What|Removed |Added
CC||snagavallis at outlook dot com
--- Comme
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35229
Richard Biener changed:
What|Removed |Added
CC||ysrumyan at gmail dot com
--- Comment #7
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35229
Richard Guenther changed:
What|Removed |Added
CC||changpeng.fang at amd dot
--- Comment #4 from matz at gcc dot gnu dot org 2009-07-22 15:31 ---
Subject: Bug 35229
Author: matz
Date: Wed Jul 22 15:30:50 2009
New Revision: 149942
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149942
Log:
PR tree-optimization/35229
PR tree-optimization/393
--- Comment #3 from irar at il dot ibm dot com 2009-03-17 13:33 ---
(In reply to comment #2)
> Or like the following, which is just a bunch of reductions of two elements
> float data[1024];
> void foo(void)
> {
> int i;
> for (i = 1; i < 1024; ++i)
> data[i] = data[i] + data[i-1]
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-02-25 14:33 ---
Or like the following, which is just a bunch of reductions of two elements
float data[1024];
void foo(void)
{
int i;
for (i = 1; i < 1024; ++i)
data[i] = data[i] + data[i-1];
}
--
http://gcc.gnu.org/bu
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-02-25 14:12 ---
Indeed. Proper testcase:
float res[1024], data[1024];
void foo(void)
{
int i;
float tmp = data[0];
for (i = 1; i < 1024; ++i)
{
float tmp2 = data[i];
res[i] = tmp + tmp2;
tmp = tmp2;