http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18439
Steven Bosscher <steven at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed|2005-12-21 03:49:30 |2011-05-22 17:43:30
CC| |irar at il dot ibm.com
--- Comment #4 from Steven Bosscher <steven at gcc dot gnu.org> 2011-05-22
15:43:42 UTC ---
Still not vectorized with recent GCC:
t.c:19: note: not vectorized: complicated access pattern.
t.c:21: note: not vectorized: complicated access pattern.
1 extern double sqrt(double);
2 typedef unsigned int bool;
3 #define true 1
4 #define NUMPOINTS 50000
5
6 static float points[NUMPOINTS][4];
7 static float opoints[NUMPOINTS][4];
8 static bool flags[NUMPOINTS];
9
10 void NormalizeVectors (void)
11 {
12 int i, r;
13 float s, x, y, z;
14 static float d = 0.0;
15
16 d += 0.2;
17 if (d > 4) d = 0.0;
18
19 for (r=0; r<4; r++)
20 {
21 for (i=0; i<NUMPOINTS; i++)
22 {
23 x = points[i][0];
24 y = points[i][1];
25 z = points[i][2];
26 s = x * x
27 + y * y
28 + z * z;
29 s = d / sqrt (s);
30 opoints[i][0] = x * s;
31 opoints[i][1] = y * s;
32 opoints[i][2] = z * s;
33 flags[i] = true;
34 }
35 }
36 }
37
"GCC: (GNU) 4.6.0 20110312 (experimental) [trunk revision 170907]"