[Bug middle-end/48377] [4.6/4.7 regression] miscompilation at -O3
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Apr 7 13:29:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48377
--- Comment #30 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-07 13:29:15 UTC ---
This is certainly a valid testcase:
struct S { long long x; int a; double b[10000]; int c; } s;
double *p = &s.b[0];
int
foo (double *q)
{
int i, j = 0;
for (i = 0; i < 10000; i++)
j += *q++;
return j;
}
int
main (void)
{
return foo (p);
}
and without the target hook, vectorizer would think it can peel the loop and
get it naturally aligned (assuming it isn't inlined at least etc. to see that q
points to &s.b[0] initially).
I think the bug is in the ABIs that do that kind of thing, but it is too late
to fix the ABIs up.
More information about the Gcc-bugs
mailing list