On Mon, 20 Dec 2004, Villemin Ryusuke wrote:
Thank you for your reply!
I was expecting an output like icc, so I checked the assembler code file ("-S") but didn t see any vector instruction...
we've meant to add a flag to output info like icc does when compiling, and we have the info to do so, it's just nobody actually went and did it :)
You never use the results, so we delete the computations when they are local.
It was because I declared my arrays local to the foo function:
foo () { float a[256], b[256], c[256]; int i; for (i=0; i<256; i++){ a[i] = b[i] + c[i]; } }
the vect output is : loop at vecto.c:9: not vectorized: unsupported data-type
Thus, the reason it's not vectorizing is because there is nothing left to vectorize.
Your loop looks like this by that point:
foo () { int i; for (i = 0; i < 256; i++) { } }
If you add another loop or something that uses the value of a[i], so that it's actually needed, you'll see we vectorize the loop.
for example, add
for (i=0; i<256; i++) printf ("%f\n", a[i]);
and we'll vectorize your loop.